Passing in “any” class type into a java method

后端 未结 3 2075
我寻月下人不归
我寻月下人不归 2021-01-26 11:21

Okay say I have a class:

public class ExampleClass() {
    public void exampleClassMethod(ArrayList abcdefg> arrList) {
        ....
             


        
3条回答
  •  感动是毒
    2021-01-26 12:05

    Any ArrayList:

    public void example( ArrayList arr ) { ...
    

    Any type of CustomClass:

    public void example( ArrayList< ? extends CustomClass> arr ) { ...
    

    Edit: For the second half of your question, you can create a new object of any type with reflection:

    public void tester( Object obj ) {
      Object obj2 = obj.getClass().newInstance();
    }
    

    This requires that the class of Object has a zero-argument constructor. I don't know why you'd want to do this however. You might want to implement clone() instead, or you might want to think a little more about your real goal at the end of all this is. Usually adding a polymorphic method to CustomClass solves these "what class do I have" type questions.

提交回复
热议问题