簡體   English   中英

Java 從 class 類型實例化 object

[英]Java Instantiating an object from a class type

我遇到了一個看似簡單的問題,但我很難弄清楚。 我的目標是創建一個生成器 object,它在被調用時創建一個 object,如下所示:

public class FishSpawner{
   public Fish spawnFish(){
      return new BlueFish(0, 0);
   }
}

這很有效,讓我可以在我的世界的 0,0 坐標處創建藍魚。 But instead of copying this class for each type of Fish I want to spawn I figured i save the type of fish I want to spawn in the constructor and then create an object of that class in the spawn function. 像這樣:

public class FishSpawner{

private Class<? extends Fish> fishType;

public FishSpawner(Class<? extends Fish> fishType){
   this.fishType = fishType;
}

   public Fish spawnFish(){
      return fishType.newInstance(0, 0);
   }
}

但是,這不起作用。 它告訴我 newInstance 已被棄用,它也不允許我將 arguments 傳遞給它的構造函數。 但是我設法用谷歌搜索的所有示例都使用了 newInstance 方法。 這里有人能指出我正確的方向嗎?

您可以通過執行以下操作來實現它

public <T extends Fish> spawnFish(){
      Constructor<T> constructor = fishType.getConstructor(Integer.class, Integer.class);
      return constructor.newInstance(0, 0);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM