有人知道怎么能给一个类动态添加方法,比如根据构造时的传如值,来对屏蔽某个,或者开通某个方法,让new的这个实例可以使用的方法可以控制,就像动态控制他实现的接口似的(实现的接口能动态改变吗?).多谢了

解决方案 »

  1.   

    <%@ page import="com.beans.*" %>xxx objxxx=new xxx();com。beans。*是你的包名称
    xxx为你的类名称
    这样就可以用xxx的方法了
      

  2.   

    在这里多态能达到楼主所说的作用一部分.想"开通" 不是很明白.
    看看这个 " 多态" 的例子行不行:public abstract class Person {
       protected String name;
       public Person(String sname){
          this.name = sname;
       }   public String getName();
    //   public void setName(String name);   public String getGender();
    }public class Test {
       public static class Man extends Person{
             Man(String name){ 
                    super(name);
             }
             public String getGender(){
                  return 'M';
             }
             public void doPCGaming(){
               System.out.println(" I Like PC Gaming ."):
             }
       }
       
       private static class Woman extends Person{
             Woman(String name){ 
                    super(name);
             }
             public String getGender(){
                  return 'F';
             }
             public void doShopping(){
                 System.out.println(" I like doing Shopping.");
             }
       }
       public static  Person create(String gender){
          if( gender.equalsIgnoreCase('M'){
              return new Man();
          }else{
              return new Woman();
          }
       }   public static void main(String[] args){
           Person p = gen(); //   随机生成 Man or Woman 
           
           if( p instanceof Man){
               ((Man) p) .doPCGaming();
           }else if ( p instanceof Woman){
               ((Woman)p).doShopping();
           }else{
               throw new InternalError(" 人妖出现了.");
           }
       }}
      

  3.   

    对java而言,实现的借口是不可以动态改变的。
    但对于你的问题,可以有一个变通的方法达到要求:静态工厂
    假设有a,b,c,d四个接口,你用一个类x同时实现这些接口,但记住将x的构造方法设为private,同时提供四个public static的方法:getA(), getB(), getC(),getD(),分别返回a,b,c,d四个接口类型。
    这样不知是否能满足你的需求?