首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

【请问】这样的设计会不会存在什么有关问题呢

2013-10-27 
【请教】这样的设计会不会存在什么问题呢?public class A {private String keyprivate A() {}public String

【请教】这样的设计会不会存在什么问题呢?

public class A {

    private String key;

    private A() {
    }

    public String process(Object obj) {
        // 这里对象传入对象obj进行某些处理后返回结果
        this.key = obj.getClass().getName();
        return key;
    }

    public static String enter(Object obj) {
        // 这里提供一个入口,处理出入对象
        return (new A().process(obj));
    }
}

在其他地方以 A.enter(obj) 进行调用。
主要是想知道在多线程调用时会不会有问题,比如线程间干扰、性能影响方面的。 java javaweb
[解决办法]
虽然是静态方法,但没静态变量,线程间干扰不用担心。
性能要看你测试结果了。
[解决办法]
你调用A.enter(obj),每次都会new一个新的A对象,这部分不会有问题。但如果你在不同的线程中处理同一个obj对象,这就会有线程同步的问题,但就你这段代码而言,this.key = obj.getClass().getName();只是一个读操作,即使没有加锁,也不会出现问题,但如果在process函数中有对obj写的操作,就必须考虑加锁了。
至于性能方面,这要看你具体情况了。

热点排行