我试图将自定义类的ArrayList转换为JsonArray.以下是我的代码.它执行正常,但一些JsonArray元素为零,即使它们是ArrayList中的数字.我试图将它们打印出来.就像ArrayList中的customerOne年龄是35但在JsonArray中它是0.可能有什么不对?
ArrayList<Customer> customerList = CustomerDB.selectAll();
Gson gson = new Gson();
JsonElement element =
gson.toJsonTree(customerList , new TypeToken<List<Customer>>() {}.getType());
JsonArray jsonArray = element.getAsJsonArray();
Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个简单的Android聊天应用程序.我创建了一个处理所有网络通信的服务类.DatagramSocket绑定在一个单独的线程中.一旦进入,我收到此错误并且应用程序崩溃:
java.net.BindException: bind failed: EADDRINUSE (Address already in use)
at libcore.io.IoBridge.bind(IoBridge.java:89)
at java.net.PlainDatagramSocketImpl.bind(PlainDatagramSocketImpl.java:68)
at java.net.DatagramSocket.createSocket(DatagramSocket.java:133)
at java.net.DatagramSocket.<init>(DatagramSocket.java:78)
Run Code Online (Sandbox Code Playgroud)
这是推测它的代码.使用新DatagramSocket的行发生错误如何避免此错误?谢谢.
private class ComThread extends Thread {
private static final int BCAST_PORT = 8779;
DatagramSocket mSocket;
InetAddress myBcastIP, myLocalIP;
public ComThread() {
try {
myBcastIP = getBroadcastAddress();
if (D)
Log.d(TAG, "my bcast ip : " + myBcastIP);
myLocalIP = getLocalAddress();
if (D)
Log.d(TAG, "my local ip : " + myLocalIP);
if (mSocket == null) {
mSocket = new DatagramSocket(BCAST_PORT);
mSocket.setReuseAddress(true);
mSocket.setBroadcast(true); …Run Code Online (Sandbox Code Playgroud) 我有一个带TextWatcher的EditText.它应该将文本格式化为人类高度,如5'9".但是当用户犯了错误并想删除输入错误的字符时,TextWather不允许他这样做.假设用户想删除"characther the TextWather立即加回.下面是代码.那么如何允许用户删除EditText中的文本?
private class CustomTextWatcher implements TextWatcher {
private EditText mEditText;
public CustomTextWatcher(EditText e) {
mEditText = e;
}
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
public void onTextChanged(CharSequence s, int start, int before,
int count) {
}
public void afterTextChanged(Editable s) {
int count = s.length();
String str = s.toString();
if (count == 1) {
str = str + "'";
} else if (count == 3) {
str = str + "\"";
} …Run Code Online (Sandbox Code Playgroud) 我们在Glassfish v4上创建了一个网站,它使用端口8080表示http,端口8081表示https.我们的cisco防火墙将请求转发到端口80到端口8080,并请求端口443到端口8081.
但我们不希望用户能够访问http站点.我们希望将所有请求重定向到http站点到https.怎么做到呢?在Glassfish管理面板中,我们更改了配置 - >服务器配置 - >网络侦听器 - > http-listener-1和http-listener-2以重定向到HTTP选项卡下的端口8081,但它无法正常工作.用户仍然可以从外部看到http站点.谢谢你的帮助.

我正在尝试编写简单的 Java Web 应用程序来从数据库中获取数据。我需要在不同的数据库表上运行多个选择查询。
String queryOne = "select firstname from employees where empid = id";
String queryOne = "select title from books where bookid = bid";
String queryOne = "select auther from books where bookid = bid";
Run Code Online (Sandbox Code Playgroud)
我试着这样做:
Connection connection = dataSource.getConnection();
Statement statement = connection.createStatement();
ResultSet rs1 = statement.executeQuery(queryOne);
while (rs1.nest()) {
String firstName = rs1.getString(1);
}
statement.close();
connection.close();
Run Code Online (Sandbox Code Playgroud)
我只能使用相同的语句运行一个查询。如何使用相同的语句执行多个查询?
我想在我的Android平板电脑上播放.3gp视频文件.我试过下面的代码,但它会抛出一条错误信息.如何在Android中使用默认视频播放器?
String movieurl = root + "/" + fileNameTextView.getText().toString();
Intent intent = new Intent(android.content.Intent.ACTION_VIEW);
Uri data = Uri.parse(movieurl);
intent.setDataAndType(data,"video/3gpp");
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
这是错误消息:
11-15 13:47:11.060:E/AndroidRuntime(23061):android.content.ActivityNotFoundException:找不到处理Intent的Activity {act = android.intent.action.VIEW dat =/mnt/sdcard/DCIM/Camera/VID_20121002_174209 .3gp typ = video/3gpp}