2

私はscalaに本当に慣れていません。クラス外からコンパニオン クラス変数にアクセスしようとしています。クラスのインスタンスを作成せずに、可能な限りこれを行うにはどうすればよいですか。

次の例では、YotascaleCostProcessing クラス内から INTERNAL_COST_REQUESTS にアクセスできます。

package com.yotascale
class YotascaleCostProcessing extends YotascaleActorSystem{

 //companion object
 object YotascaleCostProcessing{
 val INTERNAL_COST_REQUESTS = "internal-cost-requests"
 val INTERNAL_COST_UPDATES = "internal-cost-updates"
}

def setupInfrastructure() = {
    QueueService.createQueue(YotascaleCostProcessing.INTERNAL_COST_REQUESTS)
    QueueService.createQueue(YotascaleCostProcessing.INTERNAL_COST_UPDATES)
  }
}

別のパッケージの別のクラスから YotascaleCostProcessing.INTERNAL_COST_UPDATES を実行すると、YotascaleCostProcessing のインポートが存在するにもかかわらず、「見つかりません: 値 YotascaleCostProcessing」というエラーが表示されます。これが機能する唯一の方法は、私がこれを行うときです: new YotascaleCostProcessing().YotascaleCostProcessing.INTERNAL_COST_UPDATES

package com.yotascale.service.cost.setup;
import com.yotascale.YotascaleCostProcessing
class MetadataNotificationConfiguringActor(message:Message) extends UntypedActor {

def configureBucket() = {
 val realtimeupdates = QueueService.getQueueURL(YotascaleCostProcessing.INTERNAL_COST_REQUESTS)   
}
}
4

1 に答える 1