Java中的几点缺陷

开始步入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
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值