java一个类中的方法 如何在指定包运行。在其他包不能运行 能给点思路,谢谢如 有个dto  如下 我想里面 setId(int id) 方法只能在pack.a 包下有效, 在pack.b 包无效或在pack.b包能捕捉到调用,然后自己做相应的处理。谢谢package pack;
public class AaDto {

private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}}

解决方案 »

  1.   

    用default替换public
    或者删掉public
    直接用void setId(int id)...
      

  2.   

    你可以直接将方法设置为protected。
      

  3.   

    可能例子具的有点特殊 这样说吧:我想里面   setId(int   id)   方法只能在pack1.a 包下有效, 在pack2.b  包无效或在pack2.b包能捕捉到调用,然后自己做相应的处理。这样的话 pack1,pack2 不在pack包下,用protected或default就不好控制了吧 谢谢 package   pack; 
    public   class   AaDto   { private   int   id; 
    private   String   name; 
    public   int   getId()   { 
    return   id; 

    public   void   setId(int   id)   { 
    this.id   =   id; 

    public   String   getName()   { 
    return   name; 

    public   void   setName(String   name)   { 
    this.name   =   name; 
    } }
      

  4.   

    检测但前class的全路径,对这个路径进行一次判断就可以了哈
      

  5.   

    你可以把这个方法设为:protected的,然后在你的pack1.a里写一个类pack1.a.AaDto继承息pack.AaDto,那么之后,你在pack1.a取用的时候就用pack1.a.AaDto这个类的方法,这样的话在pack1.b里就不能用这个setId(int       id)方法了,当然这个方法有点笨。希望高人有更好的办法