你对TMethod的参数进行空值判断不就好了吗?

解决方案 »

  1.   

    你把参数传进去(一个Person 对象)对吧
    赋值后Person 对象的字段就有值了。
    在别的地方就可以用了 person.getname();
    但是需要注意  需要在继承了Person接口的类中加一个属性字段 name 来存值,否则 你的属性是无效的。
    比如  class  classA implements Person {
          private string name;
          public void setName(String name){ this.name = name;}
         public String getName(){ return this.name}}
      

  2.   

    接口不能有实体类,需要实现类,来实例化调用。TMethod 方法应该传入一个Person的实现类实体
      

  3.   

    "怎么做才能保证我在TMethod方法中(person)设置的数据可以使用?这个逻辑是怎么样的?"
    这是什么意思,是指你设置完数据之后可以取出来吗?
    是的话其实可以这样。
    public interface Nameable{
        public void setName(String name);
        public String getName();
    }public class Person implements Nameable{    private String name;    public void setName(String name){
            this.name = name;
        }
        public String getName(){
            return name;
        }
    }
    public class Test{
        public static void main(String[] args){
            Nameable nameable = new Person();
            nameable.setName("test");
            System.out.println(nameable.getName());
        }
    }这样就保留你的接口了。如果说你的名字是由其它对象持有的,那么可以修改Person如下。
    public class Person implements Nameable{    private Nameable nameable;    public Person(Nameable nameable){
            this.nameable = nameable;
        }    public void setName(String name){
            nameable.setName(name);
        }
        public String getName(){
            return nameable.getName();
        }
    }
    测试方法改成:
    public class Test{    static class NameAnno implements Nameable{
            private String name;
            public void setName(String name){this.name=name;}
            public String getName(){return name;}
        }    public static void main(String[] args){
            Nameable nameable = new Person(new NameAnno());
            nameable.setName("test");
            System.out.println(nameable.getName());
        }
    }