询问一段代码的含义

来源:百度知道 编辑:UC知道 时间:2024/06/06 02:58:11
public String getParameter(String key, String def) {
return isStandalone ? System.getProperty(key, def) :
(getParameter(key) != null ? getParameter(key) : def);
}

是在一个聊天室程序的applet客户端中的一个方法
实现的什么功能?

谢谢!
恩 谢谢~
但是..三目运算我清楚,而是对这个方法实现的功能不清楚
确切的说,是对isStandalone,getProperty,getParameter的作用不清楚,查了API还是不理解..

先判断isStandalone是否为true:
1、isStandalone为true时:将传递进来的(key,def)作为参数,从系统属性中查询key所对应的值,并返回,查不到就将def返回。
2、isStandalone不为true时:判断HTML标记中指定参数key的值是否不为null:如果为空就将def返回,否则就将那个值返回。

这个方法的业务就是:
查询key所对应的值。
由isStandalone控制去哪里查参数key所对应的键值。
为true就去系统属性查,不为true就去HTML标记中查。查不到就将def返回。

另:关于HTML 标记中指定参数的值,例如,如果此 applet 被指定为:
<applet code="Clock" width=50 height=50>
<param name=Color value="blue">
</applet>
那么调用 getParameter("Color") 将返回值 "blue"。

关于三目运算符:表达式?变量1:变量2
如果表达式为true,就返回变量1,否则返回变量2。

方法体内的意思是,如果isStandalone 为True,则返回System.getProperty(key, def) 的值,
否则:判断getParameter(key) != null是否为null,不等于null则输出getParameter(key) ,否则输出def。

语法: 表达式?变量:变量 —— 这叫三目运算

上面的程序可以用If else写如下:

if(isStandalone ){
return System.getProperty(key, def);
}else{

if(getParameter(key) != null){
return getParameter(k