簡體   English   中英

使用變量類型定義另一個變量類型

[英]use variable type to define another variable type

我試圖使用一個變量的類型來定義另一個變量的類型,我知道我可以將所有類型都放在一個枚舉中,然后使用帶有開關/大小寫的序數進行選擇,但是我想知道是否有更簡單的方法。

這是一個小例子:

public void loadRotation(TetrominoType type) {
TetrominoType new = new type.class();
}

TetroiminoType type = new RedTetro();
this.loadRotation(type);

RedTetro顯然擴展了TetrminoType

我知道這行不通,但希望您能從中了解我正在嘗試做的事情。

您可以使用instanceof評估者:

public class MainClass {
  public static void main(String[] a) {

    String s = "Hello";
    if (s instanceof java.lang.String) {
      System.out.println("is a String");
    }
}
}

您可以使用Java反射根據您擁有的變量的類型來重寫類型。

您可以在http://java.sun.com/developer/technicalArticles/ALT/Reflection/中找到更多信息,並在此處找到類似的問題具有給定類型的動態變量

應該是在利用類型的基類也設置基本類型,然后使用反射創建具有新類型的變量的情況下。

反思是答案。

如果您要說的是一個帶有零參數構造函數的類,那么它很簡單:

MyClass c = new MyClass();
MyClass c2 = c.getClass().newInstance();

如果需要使用帶有參數的構造函數,則必須提取並使用所需的Constructor Oracle在這里提供了一個教程:

http://download.oracle.com/javase/tutorial/reflect/member/ctorInstance.html

您需要查找Factory設計模式。

暫無
暫無

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

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