我有以下简单的代码:
package test;
import javax.swing.*;
class KeyEventDemo {
static void main(String[] args) {
UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
}
}
Run Code Online (Sandbox Code Playgroud)
它会生成以下错误消息:
KeyEventDemo.java:7: unreported exception java.lang.ClassNotFoundException; must be caught or declared to be thrown
UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
^
1 error
Run Code Online (Sandbox Code Playgroud)
有人知道出了什么问题吗?
我有以下代码:
Socket clientSocket = null;
try {
clientSocket = serverSocket.accept();
} catch (IOException e) {
System.err.println("Accept failed.");
System.exit(1);
}
Run Code Online (Sandbox Code Playgroud)
代码取自java.sun.com.
关于上面给出的短代码,我有几个问题.
为什么我们要捕获IOException.我虽然IOException是在我们使用输入输出方法(而不是网络方法)时可能发生的事情.
"System.err.println"和"System.println"有什么区别?
在catch语句中,我们有"e".做什么的?我们后者使用它吗?
好吧,我找到了一个关于如何使用Bonjour编写应用程序的很好的教程.这很酷.但唯一的问题是,我不明白他们教的是哪种语言.我甚至不确定它是一种编程语言?可能是他们写的应该在命令行输入的命令?或者这些是应该在某些GUI应用程序中执行的命令?不知何故,我找不到给出本教程的上下文.我很奇怪他们不写那是什么.
有人可以解决这个谜吗?
我试着用以下方式做到这一点:
public String getValue(String service, String parameter) {
String inputKey = service + ":" + parameter;
Set keys = name2value.keySet();
Iterator itr = keys.iterator();
while (itr.hasNext()) {
if (inputKey.equal(itr.next())) {
return name2value.get(inputKey);
}
return "";
}
}
Run Code Online (Sandbox Code Playgroud)
我收到一条错误消息:找不到符号method.equal(java.lang.Object).
我认为这是因为itr.next()不被视为字符串.我怎么解决这个问题?我试图取代Set keys的Set<String> keys.它没有帮助.
JavaScript是否能够像Flash那样做同样的事情?如果是这样的话,从Adobe Flash切换到JavaScript是否是一个好主意?
我有以下代码:
payoffs2exchanges.put(point, exchange);
if (!payoffs2exchanges.containsKey(point) ) {
game.log.fine("yes");
} else {
game.log.fine("no");
}
Run Code Online (Sandbox Code Playgroud)
它输出"否".换句话说,我将键值对添加到地图中,然后,在此之后我立即检查密钥是否存在并发现它不存在.为什么?
我仍然有钥匙的问题.以下代码说每次添加密钥时我都会添加一个新密钥.我知道事实并非如此.
Integer[] point = new Integer[2];
point[0] = proposerBestScore;
point[1] = responderBestScore;
game.log.fine("In the getCloudOfPayoffs: found payoffs:" + point[0] + "," + point[1] + ". Exchange: " + exchange[0]+","+exchange[1]+","+exchange[2]+","+exchange[3]+","+exchange[4]);
// With the following block we ensure that every options (pair of payoffs) is represented by exchange with minimal number of moves.
if (!payoffs2exchanges.containsKey(point)) {
payoffs2exchanges.put(point, exchange);
game.log.fine("In the getCloudOfPayoffs: this option is new. We add it …Run Code Online (Sandbox Code Playgroud) 在我的网站上,我想拥有几个子域。为给定子域创建上下文的文件存储在相应的子目录中。
有时我需要链接到不属于该子域的文件。
例如,在我的“ subdomain1.mysite.org”上,我具有“ www.mysite.org/login.php”的链接。“ login.php”存储在目录中,该目录包含与子域相对应的所有子目录。
如果我以这种方式创建指向“ www.mysite.org/login.php”的链接:href='../login.php',它将无法正常工作。因为浏览器尝试访问“ subdomain1.mysite.org/../login.php”。为了解决这个问题,我以这种方式建立了链接:href='http://www.mysite.org/login.php'但是我认为这种方式无法将我的会话变量传递给新页面(是这样吗?)。
因此,我的问题是我找不到将会话变量传递到位于父目录中的页面(或传递到另一个域上的页面)的方法。有人知道如何解决这个问题吗?
添加
按照建议,我很疲倦地使用它session_set_cookie_params来解决问题。但是我仍然无法获得预期的结果。更详细地讲,我执行以下操作:
我在使用以下代码index.php生成内容的文件中subdomain1.mysite.org:
session_set_cookie_params(24*60*60,'/','.mysite.org');
session_start();
$_SESSION['page'] = $PHP_SELF;
Run Code Online (Sandbox Code Playgroud)
后来,在同一个文件中,我链接到了我的页面之一(我认为问题可能出在这里)。我通过以下方式创建链接:
href='http://www.mysite.org/login.php'
Run Code Online (Sandbox Code Playgroud)
在login.php文件中,我有以下代码:
session_set_cookie_params(24*60*60,'/','.mysite.org');
session_start();
print "a".$_SESSION['page']."b";
Run Code Online (Sandbox Code Playgroud)
结果,“ a”和“ b”之间没有任何关系。因此,我仍然无法将会话变量从一页传递到另一页。有人知道我在做什么错吗?
添加2
我必须说,如果添加以下行,我的问题就解决了:
session_name("some_name");
之前
session_set_cookie_params。
我有以下形式的字符串:"37","42","7".
我需要将它们转换为整数.我可以用intval.但是我想检查字符串是否是预期的格式(我不是指预期的格式,例如,"abc"或"a7").我怎么能在使用之前或之后做到intval?
据我所知,intval如果参数不是合适的格式,则返回1.如果是这种情况,就无法通过分析输出来检查参数是否是良好的格式intval.
我有一个这样的字符串:'aaa(cc(kkk)c)ddd[lll]{m(aa)mm}'.从那个字符串我想得到以下结构:['aaa', '(cc(kkk)c)', 'ddd', '[lll]', '{m(aa)mm}'].换句话说,我想分开不同类型括号中的子串.
我尝试使用C++ boost库中的for_each.这是我的代码.
#include <iostream>
#include <vector>
#include <boost/fusion/algorithm/iteration/for_each.hpp>
#include <boost/fusion/include/for_each.hpp>
using namespace std;
int main() {
vector<int> vec;
vec.push_back(1);
vec.push_back(2);
vec.push_back(3);
boost::for_each(
vec,
[](int val){
cout << val << "\n";
}
);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这是我编译代码的方式:
g++ -std=c++0x -I /opt/software/boost/1.50_ubuntu12.4lts_gcc4.7.2/include -c try_boost.cpp
g++ -o try_boost -L/opt/software/boost/1.50_ubuntu12.4lts_gcc4.7.2/lib try_boost.o -lboost
Run Code Online (Sandbox Code Playgroud)
结果我得到:
error: ‘for_each’ is not a member of ‘boost’
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么它不起作用?