我在将一些法语文本转换为UTF8时遇到了一些问题,因此可以在控制台,文本文件或GUI元素中正确显示.
原始字符串是
HANDICAP╔ES
应该是
HANDICAPÉES
这是一个代码片段,显示了我如何使用jackcess Database驱动程序读取Eclipse/Linux环境中的Acccess MDB文件.
Database database = Database.open(new File(filepath));
Table table = database.getTable(tableName, true);
Iterator rowIter = table.iterator();
while (rowIter.hasNext()) {
Map<String, Object> row = this.rowIter.next();
// convert fields to UTF
Map<String, Object> rowUTF = new HashMap<String, Object>();
try {
for (String key : row.keySet()) {
Object o = row.get(key);
if (o != null) {
String valueCP850 = o.toString();
// String nameUTF8 = new String(valueCP850.getBytes("CP850"), "UTF8"); // does not work!
String valueISO = new String(valueCP850.getBytes("CP850"), …
Run Code Online (Sandbox Code Playgroud) 当我执行以下代码时,我得到ConcurrentModificationException
Collection<String> myCollection = Collections.synchronizedList(new ArrayList<String>(10));
myCollection.add("123");
myCollection.add("456");
myCollection.add("789");
for (Iterator it = myCollection.iterator(); it.hasNext();) {
String myObject = (String)it.next();
System.out.println(myObject);
myCollection.remove(myObject);
//it.remove();
}
Run Code Online (Sandbox Code Playgroud)
为什么我得到异常,即使我使用Collections.synchronizedList?
当我将myCollection更改为
ConcurrentLinkedQueue<String> myCollection = new ConcurrentLinkedQueue<String>();
Run Code Online (Sandbox Code Playgroud)
我没有得到那个例外.
java.util.concurrent中的ConcurrentLinkedQueue与Collections.synchronizedList有何不同?
我正在研究实时java实现传感器网络模拟.我的模拟工作,但问题是我想做一些灵敏度分析,所以我需要多次运行模拟,一个接一个.在第一次迭代后,我无法获得任何结果,因为暂停和激活或重置它们有点问题.所以这是代码:
class Response_Time extends SimulationProcess{
/*static Random seed ;
public Response_Time(Random seeds) {
seed= new Random (seeds);
}*/
public static void main(String[] args){
for(int i=0;i<5; i++)
{
Response_Time exp = new Response_Time();
exp.await();
}
}
public void run(){
System.out.println("Creating components...");
Mesh2DSensorNetwork sn = new Mesh2DSensorNetwork(7,7);
Task_Generator tg = new Task_Generator(sn);
emiission ee = new emiission(sn);
DataCollection dc = new DataCollection(sn, tg);
try {
tg.Activate();
ee.Activate();
dc.Activate();
sn.Activate();
Scheduler.startSimulation();
System.out.println("Simulation started... "+CurrentTime());
Hold(576000);
System.out.println("Simulation stopped... "+CurrentTime());
Scheduler.stopSimulation();
tg.terminate();
ee.terminate();
dc.terminate();
sn.terminate(); …
Run Code Online (Sandbox Code Playgroud) 我经常有一种Comparator
类型,而我需要一种Comparable
,反之亦然。是否有可重用的 JDK API 可以相互转换?大致如下:
public static <C> Comparable<C> toComparable(final Comparator<C> comparator) {
// does not compile because Hidden can not extend C,
// but just to illustrate the idea
final class Hidden extends C implements Comparable<C> {
@Override
public int compareTo(C another) {
return comparator.compare((C) this, another);
}
};
return new Hidden();
}
public static <C extends Comparable<C>> Comparator<C> toComparator(final Class<C> comparableClass) {
return new Comparator<C>() {
@Override
public int compare(C first, C second) {
assert …
Run Code Online (Sandbox Code Playgroud) 我需要在 .mdb Access 文件上读取和写入一些数据,通过网络我找到了Jackcess库,它正是这样做的。
不幸的是我找不到任何使用它的文档。图书馆网站上有几个示例,但没有真正的文档。谁能告诉我某处是否有某种文档?
编辑:嗯,我觉得很腼腆.我在看错了构造函数.根据Kal的回答,被调用的真实构造函数(见下文) - 违反了foreach循环的并发规则.
无论如何,谢谢你的帮助!它仍然可以帮助我修复代码中的实际错误.
所有
我是一个非常新的Java程序员,我只是刚开始掌握语言的基本句柄.我目前正在与对话参与者系统的工作,但已先行试图让逻辑的条款我们的系统的陈述符合规格.我差不多完成了,但遇到了以下错误:
Exception in thread "main" java.util.ConcurrentModificationException
at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
at java.util.AbstractList$Itr.next(AbstractList.java:343)
at com.Term.<init>(Term.java:97)
at com.Term.substituteVariables(Term.java:251)
at com.Term.substituteVariables(Term.java:247)
at com.Term.substituteVariables(Term.java:247)
at com.TermPredTestArch.main(TermPredTestArch.java:40)
Run Code Online (Sandbox Code Playgroud)
有问题的方法,substituteVariables,基本上是一个复制构造函数,略有修改:它接受一个绑定映射,并递归遍历调用它的Term对象,沿途查找变量并将它们交换出来实例.奇怪的是,它似乎只是在我离开时的昨晚工作(虽然我没有广泛测试),但现在拒绝玩得很好; 我没有做过任何实质性的修改.
相关代码如下(第232-252行):
232 /** Returns a new Term with the appropriate bindings substituted */
233 public Term substituteVariables(Map<Variable, Symbol> bindings) {
234 ArrayList<Symbol> args = this.getArgs();
235 ArrayList<Symbol> newArgs = new ArrayList<Symbol>();
236 Set<Variable> vars = this.getVars();
237 Set<Variable> bindingKeys = bindings.keySet();
238 for(Symbol s: args) {
239 // if s is a Variable, …
Run Code Online (Sandbox Code Playgroud) 我想从MS Access数据库显示数据,我正在使用Jackcess库,但是我得到一个依赖性错误,我不知道如何解决.这是我的代码和错误:
import com.healthmarketscience.jackcess.*;
import java.io.*;
import java.util.*;
import java.sql.*;
import java.nio.*;
import java.lang.*;
import org.apache.commons.*;
import org.apache.commons.lang3.builder.*;
import org.apache.log4j.Logger;
import org.apache.log4j.xml.DOMConfigurator;
class Main {
private static Logger log=Logger.getLogger(Main.class);
public static void main(String args[]) {
DOMConfigurator.configure("lib\\log4j.xml");
try {
Database d = Database.open(new File("lib\\ExTables.mdb"));
System.out.println(d.getTable("Cliente").display());
} catch(Exception e) {
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的错误:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/lang/builder/CompareToBuilder
at com.healthmarketscience.jackcess.RowId.compareTo(RowId.java:108)
at com.healthmarketscience.jackcess.IndexData$Entry.compareTo(IndexData.java:1825)
at com.healthmarketscience.jackcess.IndexData$Entry.compareTo(IndexData.java:1637)
at java.util.Collections.indexedBinarySearch(Unknown Source)
at java.util.Collections.binarySearch(Unknown Source)
at com.healthmarketscience.jackcess.IndexData$DataPage.findEntry(IndexData.java:2347)
at com.healthmarketscience.jackcess.IndexData.findEntryPosition(IndexData.java:709)
at com.healthmarketscience.jackcess.IndexData.access$3100(IndexData.java:54)
at com.healthmarketscience.jackcess.IndexData$EntryCursor.updatePosition(IndexData.java:2118)
at …
Run Code Online (Sandbox Code Playgroud) 我是一个JAVA新手,并试图找到答案,但一直在努力,因为我真的不知道如何使用正确的术语,并写在Java上的金额是巨大的.所以我提前道歉,如果有一个参考解释我的问题但我无法找到它.
我有一个关于在JAVA GUI中定义用户类的问题.我想编写一个使用我的对象的GUI,其中一个对象被定义,它们基本上包含一些数字,这是对象先前操作的结果.
然而,在试图达到目标时,我已经将问题提炼到试图理解如何在一个地方定义类并在另一个地方采取行动.
例如 ...
public class Form extends javax.swing.JFrame {
/**
* Creates new form Form
*/
public TheOtherClass otherClass;
public Form() {
TheOtherClass otherClass = new TheOtherClass();
}
}
Run Code Online (Sandbox Code Playgroud)
我认为如果你将类声明为一个实例变量,然后在构造函数中实例化它,那么对象将在表单存活时"生存".但是,当我尝试在其他任何地方使用该对象时,我得到了一个NullPointerException
.
我认为这是因为虽然对象是在类级别声明的,但它是在构造函数中创建的,并在构造函数代码完成时被销毁.它是否正确 ?
当我这样做它有效...
public class Form extends javax.swing.JFrame {
/**
* Creates new form Form
*/
TheOtherClass otherClass = new TheOtherClass();
public Form() { }
}
Run Code Online (Sandbox Code Playgroud)
这个可以吗 ?有更好或更好的方式吗?有人可以指导我参考或教程可能会有所帮助吗?
干杯P.
如果我有以下代码:
public static void main(String [] args) {
List <Integer> l2 = new ArrayList <Integer>();
List <?> l3 = l2;
test(l2);
test(l3);
}
public static void test(List <?> l) {
if (l instanceof List<?>)
System.out.println("true");
}
Run Code Online (Sandbox Code Playgroud)
这将打印:
true
true
Run Code Online (Sandbox Code Playgroud)
据我所知,它<?>
是一个可重复的类型,这意味着它有一些捕获类型(无论那种类型)在运行时可用.
问题:
a.在测试方法中,是否知道l2具有整数类型(因为它在方法调用之前已被擦除)?它是如何翻译的,以便l(来自l2)是list <?>的实例?
湾 l3怎么样?它是如何翻译的?
在下面的代码片段中,它是否会导致死锁?
public class TestLocks {
ReadWriteLock lock = new ReentrantReadWriteLock();
public void add() {
lock.readLock().lock();
//code.....
lock.writeLock().lock();
//code
lock.writeLock().unlock();
//code....
l.readLock().unlock();
}
Run Code Online (Sandbox Code Playgroud)
我上面所做的是使用ReentrantReadWriteLock,锁定'lock'进行读取,然后在其中再次尝试获取写入锁(在释放readLock之前).这可能永远不会在生产中完成,但很想知道上面的代码是否会导致死锁?
在向java.sql.Blob
我的一个对象添加字段后,hibernate持久性管理器现在抛出Blobs are not cacheable
异常.
除了禁用缓存之外,任何想法都解决了这个问题.我试图让这个场短暂,但当然没有成功.
顺便说一下,我使用最新的Spring Framework.