我正在使用Eclipse 3.5,我创建了一个包含一些包结构和默认包的项目.我在默认包中有一个类 - Calculations.java,我想在任何一个包中使用该类(例如in com.company.calc).当我尝试使用默认包中的类时,它给了我一个编译器错误.它无法识别默认包中的类.问题出在哪儿?
Calculations.java - 源代码
public class Calculations {
native public int Calculate(int contextId);
native public double GetProgress(int contextId);
static {
System.loadLibrary("Calc");
}
}
Run Code Online (Sandbox Code Playgroud)
我不能把我的班级放在任何其他包中.这个类有一些在Delphi中实现的本机方法.如果我将该类放在任何文件夹中,我将不得不对我想要避免的DLL进行更改(实际上 - 我不能).这就是为什么我把我的类放在默认包中.
我有这样的枚举:
public enum Configuration {
XML(1),
XSLT(10),
TXT(100),
HTML(2),
DB(20);
private final int id;
private Configuration(int id) {
this.id = id;
}
public int getId() { return id; }
}
Run Code Online (Sandbox Code Playgroud)
有时我需要检查枚举中有多少个字段.什么是最好的解决方案?我应该使用方法"values().length"吗?或许,我必须在枚举中创建常量字段,如下所示:
public enum Configuration {
XML(1),
XSLT(10),
TXT(100),
HTML(2),
DB(20);
private final int id;
private Configuration(int id) {
this.id = id;
}
public int getId() { return id; }
public static final int Size = 5;
}
Run Code Online (Sandbox Code Playgroud)
什么是最快,更优雅的解决方案?
我正在使用Jackson,Spring MVC写出一些简单的对象JSON.其中一个对象具有amount类型的属性Double.(我知道这Double不应该用作金额.但是,这不是我的代码.)
在JSON输出中,我想将数量限制为2位小数.目前它显示为:
"amount":459.99999999999994
Run Code Online (Sandbox Code Playgroud)
我已经尝试过使用Spring 3的@NumberFormat注释,但是没有在这方面取得成功.看起来其他人也有问题:在这里将JSON绑定到JavaBean propertiesenter链接描述时,MappingJacksonHttpMessageConverter的ObjectMapper不使用ConversionService.
此外,我尝试使用@JsonSerialize注释,使用自定义序列化程序.
在模型中:
@JsonSerialize(using = CustomDoubleSerializer.class)
public Double getAmount()
Run Code Online (Sandbox Code Playgroud)
和序列化器实现:
public class CustomDoubleSerializer extends JsonSerializer<Double> {
@Override
public void serialize(Double value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonGenerationException {
if (null == value) {
//write the word 'null' if there's no value available
jgen.writeNull();
} else {
final String pattern = ".##";
//final String …Run Code Online (Sandbox Code Playgroud) 我使用Jackson 2.1.4将POJO序列化为JSON,但我想忽略序列化的特定字段.我使用了瞬态,但它仍在序列化该元素.
public class TestElement {
int x;
private transient String y;
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public String getY() {
return y;
}
public void setY(String y) {
this.y = y;
}
}
Run Code Online (Sandbox Code Playgroud)
我正在序列化如下:
public static void main(String[] args) throws JsonProcessingException {
TestElement testElement = new TestElement();
testElement.setX(10);
testElement.setY("adasd");
ObjectMapper om = new ObjectMapper();
String serialized = om.writeValueAsString(testElement);
System.err.println(serialized);
}
Run Code Online (Sandbox Code Playgroud)
请不要建议,@JsonIgnore因为我不想将我的模型与杰克逊特定注释联系起来.可以仅使用瞬态完成吗?objectmapper上是否有用于可见性设置的API?
我使用SWT在Java中编写应用程序.我想创建唯一的文件名.但我不想在硬盘上创建它.附加功能:我想在指定文件夹中创建唯一的文件名.
public String getUniqueFileName(String directory, String extension) {
//create unique file name
}
Run Code Online (Sandbox Code Playgroud) 我正在使用SWT编写桌面应用程序.从另一个线程更新GUI控件的最简单方法是什么?
我使用C#和.NET2.0编写Windows应用程序.在RichTextBox中,我想显示Celsius符号.怎么做?可能吗?
我写了一个简单的程序.我尝试将选择结果存储在变量中.我使用"SELECT INTO"查询,但我不能这样做.
例:
DECLARE
v_employeeRecord employee%ROWTYPE;
BEGIN
SELECT * INTO v_employeeRecord
FROM Employee WHERE Salary > 10;
END;
Run Code Online (Sandbox Code Playgroud) 在我的职业生涯中,我看到了几个不同的设计,如何使用DAO,服务,控制器层.我想问一下两个相似但差别不大的两个.第一种设计在层之间产生可见屏障.控制器始终使用服务而仅使用服务.服务可以使用其他服务或DAO.控制器不能直接使用任何DAO.这个设计很清楚,但对我来说有很大的不足:我们总是要为DAO中的每个方法创建服务方法.但在很多情况下,Service方法只调用DAO方法和其他任何东西.
例如:我们有 DAO
class UserDao {
public List<User> findByName(String name) { ... }
public List<User> findByLastName(String name) { ... }
public List<User> findOlderThan(int age) { ... }
......
}
Run Code Online (Sandbox Code Playgroud)
控制器使用上述所有方法.在我们的案例中我们应该做些什么?创建类似的方法Service:
class UserService {
public List<User> findByName(String name) { return userDao.findByName(name); }
public List<User> findByLastName(String name) { return userDao.findByLastName(name); }
public List<User> findOlderThan(int age) { return userDao.findOlderThan(age); }
......
}
Run Code Online (Sandbox Code Playgroud)
对我来说,这是只读方法的额外不必要的层.
在第二种设计中,我们没有遇到任何问题,因为我们可以在控制器中直接使用DAO.在这个设计中我们有一个规则:如果我们想从"数据存储"中检索数据,我们可以在任何层使用DAO,如果我们想在"数据存储"中进行一些更改,我们必须使用服务方法.
伙计们,对于这些设计你怎么看?哪个更好?我应该在我的项目中使用哪些应该被遗忘?你能和我分享你在这方面的经验吗?