关于java中get方法的问题..
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于java中get方法的问题..相关的知识,希望对你有一定的参考价值。
程序当中用到很多类似的定义:
private JTextField getJTextField()
if (jTextField == null)
jTextField = new JTextField();
jTextField.setBounds(new Rectangle(135, 50, 96, 28));
return jTextField;
这么定义是为什么呀?能不能把方法由getJTextField()变成别的名字..
这里的get方法是不是和那个get一个方法必须set一个方法一样呀?
这个方法主要是用来对类中的属性jTextField进行判断的,如果它为空,则实例化一个JTextField对象,如果不为空则原样返回!
注意的是:jTextField是本类的属性,也就是全局变量!!
方法名可以改,但是所有调用它的地方都要跟着改了! 参考技术A 有位老兄说对了
这样程序的写法 为的就是得到一个JTextField 对象
但与get 没有任何关系 你可以把它叫做 yy 都没有问题
它强调的是只生成一个对象 重点在这 只有这样而已
JTextField jtf = new JTextField ();
会每次都新建一个对象
但是 我 getJTextField() 得到的就只有一个 getJTextField 对象 而已 参考技术B private 方法属性,
只能在当前类内访问,
可以换成别的名字,
不用get一个方法必须set一个方法,
那样是javabean的做法
这个功能应该是单例模式的应用吧,
具体请楼主参阅设计模式之单例模式 参考技术C a
关于java中 get提交方式的乱码问题
这个原因是服务器导致的,服务器比如tomcat接收get方法默认使用的是ISO-8859-1编码,
而浏览器发送时文字编码是和页面编码保持一致的,如果页面是使用utf-8 编码 get方法文字自然是使用utf-8编码,
但接收服务器没有设置的情况下用了ISO-8859-1编码接收,中文自然就成乱码了,
不过由于ISO-8859-1编码是单字节编码所以我们可以使用getBytes("ISO-8859-1"),"utf-8"这样把文字重新转换成utf-8 编码。
第一个发送的文字是utf-8编码 而tomcat接收后用错误的ISO-8859-1编码了,这样getBytes("ISO-8859-1")后会重新得到正确的utf-8编码的字节数组 ,然后用 new
String(request.getParameter("something").getBytes("ISO-8859-1"),"utf-8")重新将字节编码成UTF-8编码的文字这样文字就正确了。
如果是tomcat的话 server.xml文件里
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/>
后边的URIEncoding就是设置get方法编码的如果没有指定URL接收的编码类型,自动会用ISO-8859-1编码
以上是关于关于java中get方法的问题..的主要内容,如果未能解决你的问题,请参考以下文章