编程语言

img Cavingdeep

Java中的几点缺陷

发表于2004/10/13 17:42:00  1252人阅读

开始步入Java语言,如果这里有说的不对,还请各位Java高人给指点一下!长话短说,缺陷如下:

  1. 参数:没有out类型参数,参数无法传到调用处,比如如果我有:
    public static bool parseInt(string text, int number) {
        try {
            number = Integer.parseInt(text);
        } catch (Exception ex) {
            return false;
        }
        return true;
    }

    因为Java中没有out类型参数我就不能很方便的这样去调用它了:

    int number = 0;
    String numberToParse = "100";
    if (parseInt(numberToParse, number)) {
        // Process the number parsed.
        // ......
    }

    实际上我希望Java增加对in、out、in-out的同时支持,就目前来讲,Java只支持in。

  2. 接口:Java中的接口有很大的限制,使用起来及其不便,一个接口会不兼容另一个接口,换句话说就是两个接口无法同时存在的问题,这是一个非常棘手而又没有walk around的问题。具体示例如下所述:如果我从两个第三方获得两个接口,INumber、IClassStructure:
    public interface INumber {
        INumber parse(String text);
    }
    public interface IClassStructure {
        IClassStructure parse(String text);
    }

    这是两个完全不相干的接口,它们除了都有一个parse方法外没有什么业务上的关系。注意上面两个接口的方法签名是一样的,只是返回类型不一样,这就意味着无法在一个Java类中同时实现这两个接口,这就是我所说的没有walk around的问题,你可以试想一下解决方法,注意由于是从第三方处得来的接口,所以我不能去改变其中一个接口的源代码。另外一个问题就是如果这两个接口返回的类型是一样的,比如都是void,那么就不会有语法错误同时实现它们两个,但是两个接口的意义又都不同,那为什么我不能为不同的接口实现不同的逻辑呢?Java在最关键的接口方面居然做的这么差实在让我出乎意料,要知道OOD(Object Oriented Design)主要就是靠抽象层的设计来做的相对完美的,但是Java中的接口居然有这么多局限性实在让人失望。建议Java增加对不同的接口可以有不同实现的机制,这样就也可以解决第一个问题了。顺便说一句,.NET中可以针对不同的接口有不同的实现。

阅读全文
0 0

相关文章推荐

img
取 消
img