JAVA中对JTextField对象的值的获取 *** 作,为什么注释的部分没有效果呢难道有什么错误么

JAVA中对JTextField对象的值的获取 *** 作,为什么注释的部分没有效果呢难道有什么错误么,第1张

在jave中==比较的的是2个对象的内存地址

如果没有overrid equals方法的话,它和“==”是一样的,当然,String类中对于equals进行了override,

看JDK源码可以知道,equals方法先会对字符串的长度进行比较,如果长度相同,则再对每个character作==运算

public boolean equals(Object anObject) {

    if (this == anObject) {

        return true;

    }

    if (anObject instanceof String) {

        String anotherString = (String)anObject;

        int n = count;

        if (n == anotherStringcount) {

        char v1[] = value;

        char v2[] = anotherStringvalue;

        int i = offset;

        int j = anotherStringoffset;

        while (n-- != 0) {

            if (v1[i++] != v2[j++])

            return false;

        }

        return true;

        }

    }

    return false;

    }

 public int hashCode() {

    int h = hash;

        int len = count;

    if (h == 0 && len > 0) {

        int off = offset;

        char val[] = value;

            for (int i = 0; i < len; i++) {

                h = 31h + val[off++];

            }

            hash = h;

        }

        return h;

    }

在来,看下JTextField的源码,可以看到,getText的实现是这样的

以下是从JDK16中截取的部分源码片段

//JTextField的getText

public String getText() {

        Document doc = getDocument();

        String txt;

        try {

            txt = docgetText(0, docgetLength());

        } catch (BadLocationException e) {

            txt = null;

        }

        return txt;

    }

//这段代码是docgetText的实现

    public String getText(int offset, int length) throws BadLocationException {

    if (length < 0) {

        throw new BadLocationException("Length must be positive", length);

    }

    String str = datagetString(offset, length);

    return str;

    }

//这段代码是datagetString(offset,length)的实现

 public String getString(int where, int len) throws BadLocationException {

    if (where + len > count) {

        throw new BadLocationException("Invalid range", count);

    }

    return new String(data, where, len);

    }

最终可以看到,返回的结果是new String(data,where,len);,到此也可以很明显看到getText返回的字符串和"123"是两个不同的实例,因此==得到的必然是false

PS: 关于String a = new String("123"); 和 String a = "123"; 这2条语句的不同已经是一个老生常谈的问题了,此处就不说明了。

参考:

// ie9以前

if (!Node) {

var Node = {};

}

if (!NodeCOMMENT_NODE) {

// numeric value according to the DOM spec

NodeCOMMENT_NODE = 8;

}

function getComments(elem) {

var children = elemchildNodes;

var comments = [];

for (var i=0, len=childrenlength; i<len; i++) {

if (children[i]nodeType == NodeCOMMENT_NODE) {

commentspush(children[i]);

}

}

return comments;

}

ie9以后:

function getAllComments(rootElem) {

var comments = [];

// Fourth argument, which is actually obsolete according to the DOM4 standard, is required in IE 11

var iterator = documentcreateNodeIterator(rootElem, NodeFilterSHOW_COMMENT, filterNone, false);

var curNode;

while (curNode = iteratornextNode()) {

commentspush(curNodenodeValue);

}

return comments;

}

windowaddEventListener("load", function() {

consolelog(getAllComments(documentbody));

});

可调用"内部函数"的"tag"目录下的函数来实现。

具体步骤如下:

1、添加一个属性,例如:publicfloatMyProperty。

2、用标签来显示变量值。

3、把控件拖到WINCC画面里,就可以看到这个控件已经拥有了属性“MyProperty”。

4、直接连接变量就可以。

5、激活WINCC就可以看到变量值了。

此处的method可以取两个值,一个是RequestMethodGET,一个是RequestMethodPOST,

这样写的话你应该就能够看出是什么意思了把,就是请求该方法使用的模式,是get还是post

您好,估计您的意思是想类似Eclipse的做法解释这个Annotation哪些有定义默认值,哪些没有。

这个可以Class clz = Validateclass

Method[] ms = clzgetDeclaredMethods();

然后判断ms[i]getDefaultValue()返回如果不是null就表示有定义默认值了。

以上就是关于JAVA中对JTextField对象的值的获取 *** 作,为什么注释的部分没有效果呢难道有什么错误么全部的内容,包括:JAVA中对JTextField对象的值的获取 *** 作,为什么注释的部分没有效果呢难道有什么错误么、HTML如何获取comment(注释)元素对象、wincc如何读取变量注释与地址等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9348609.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存