you can just inject an instance of `Magento\Catalog\Model\ResourceModel\Product` in your class and use that one instead of `$product->getResource()`; 


    /**
     * @var \Magento\Catalog\Model\ResourceModel\Product
     */
    private $productResource;
    
    public function __construct(
        ...
        \Magento\Catalog\Model\ResourceModel\Product $productResource,
        ....
    ) {
        ....
        $this->productResource = $productResource;
        ....
    }

And use this inside your methods

    $tablecolor = $productResource->getAttribute('xyz'); 

This is how you can use the product resource model, but in your specific case, when you want to get an instance of a certain attribute you can use the product attribute repository

    /**
     * @var \Magento\Catalog\Api\ProductAttributeRepositoryInterface
     */
    private $attributeRepository;
    
    public function __construct(
        ...
        \Magento\Catalog\Api\ProductAttributeRepositoryInterface $attributeRepository,
        ....
    ) {
        ....
        $this->attributeRepository = $attributeRepository;
        ....
    }

and later use this

    try {
        $tablecolor = $attributeRepository->get('xyz'); 
        //do soemthing with tablecolor
    } catch (\Magento\Framework\Exception\NoSuchEntityException $e) {
        //the attribute does not exist
    }

If you want to only get the label of an option of a dropdown attribute for a specific product you can just use this

    $product->getAttributeText('xyz');