小编Cam*_*ner的帖子

将Java String转换为sql.Timestamp

得到一个字符串以这种格式进入:YYYY-MM-DD-HH.MM.SS.NNNNNN时间戳来自DB2数据库.我需要将其解析为java.sql.Timestamp并且不会丢失任何精度.到目前为止,我一直无法找到现有的代码来解析那么远的微秒.SimpleDateFormat返回Date并仅解析为毫秒.简短地看着JodaTime,并没有看到那也行.

java string parsing timestamp

34
推荐指数
3
解决办法
15万
查看次数

适用于Android的天气API

我想知道一些API,我可以用它来检索Android中的天气信息.我发现了使用Google Weather API的样本并且工作正常.但是由于Google Weather API尚未正式公开并且对公众开放,因此存在随时停用的风险.

还有一些博客称,Google Weather API返回的数据不准确,并且使用它时要小心.

因此我正在寻找一些我可以在Android中使用的API.如果有人已经在使用某些API,请告诉我.

android weather

24
推荐指数
2
解决办法
4万
查看次数

太多的导入垃圾邮件我的代码

在我的项目中,我有一个shapes包含我为我的图形程序设计的形状的包,例如Rectangle,Circle.我还有一两个与java.awt类名相同的包.

现在,因为我不想重命名我的代码库中的每个类,为了向我的源文件显示我所说的类,当我声明一个新的Rectangle时,我需要:

1-显式导入矩形类,即导入shapes.Rectangle

要么

2-只导入我需要的java.awt类而不导入java.awt.*,它自动包含awt.Rectangle

现在问题是两种方式导致大量导入,我目前在每个源文件中平均有15-25个导入,这严重地使我的代码混乱和混乱.

代码中的导入太多是件坏事吗?有没有办法解决?

java import coding-style package

12
推荐指数
5
解决办法
2355
查看次数

如何使用mockito在匿名类中测试方法调用

@Transactional(propagation = Propagation.REQUIRED)
    public void exe() {
        try {
            Reserve reserveInfo = newTransactionTemplate.execute(new TransactionCallback<Reserve>() {
                @Override
                public Reserve doInTransaction(TransactionStatus status) {
                    return reserveService.callReserve(reserveDetails);
                }
            });
            if(reserveInfo != null && reserveInfo.getStatus()=="DONE") {
            someOtherService.doSomething();
            }
        } finally {
            if(reserveInfo!= null && reserveInfo.getStatus().equals("DONE")){
                final String id = reserveInfo.getId();                                  
                Release releaseInfo = newTransactionTemplate.execute(new TransactionCallback<Release>() {
                    @Override
                    public Release doInTransaction(TransactionStatus status) {
                        return reserveService.callRelease(id);
                    }
                });             
                if (releaseInfo.getStatus() != "RELEASED") {
                    throw new RuntimeException("Problem in releaseing");

                }
            }
        }       
    }
Run Code Online (Sandbox Code Playgroud)

这是我想测试的示例代码.我在网上测试匿名课时找不到多少.我想测试exe()方法,通过newTransactionTemplate.execute方法并模拟对reserveService.callReserve(reserveDetails)的调用.

任何人都可以建议我如何测试这种情况?

这是我试图测试的示例:

 private SomeService …
Run Code Online (Sandbox Code Playgroud)

java mocking mockito

10
推荐指数
1
解决办法
1万
查看次数

当A继承自B时,从EnumSet <A>转换为Set <B>

标题几乎解释了这个问题.我有一个接口方法:

Set<Field> getFieldSet()
Run Code Online (Sandbox Code Playgroud)

我有一个类,User看起来像这样

class User {
    enum Fields implements Field {
        USERNAME, PASSWORD;
        ...
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

现在我想实现UsergetFieldSet()方法.天真的方式似乎只是return EnumSet.allOf(Fields.class)但我得到以下错误:

> Type mismatch: cannot convert from Set<User.Fields> to Set<Field>
Run Code Online (Sandbox Code Playgroud)

除了手动复制EnumSet之外Set<Field>,还有一个很好的方法吗?

java enums enumset

5
推荐指数
1
解决办法
2639
查看次数

char array = char数组的问题

我有:

char message1[100];
char message2[100];
Run Code Online (Sandbox Code Playgroud)

当我尝试做的时候message1 = message2,我得到错误:

‘char[100]’从类型分配类型时不兼容的类型‘char *’

我有类似的功能

if(send(clntSocket, echoBuffer, recvMsgSize, 0) != recvMsgSize){
   DieWithError("send() failed")
}
Run Code Online (Sandbox Code Playgroud)

插图中.这些可能会以某种方式弄乱吗?:(

我有一种感觉,也许你不能=对字符数组或其他东西做,但我环顾四周,找不到任何东西.

c arrays char

4
推荐指数
2
解决办法
2676
查看次数

字典和Hashtable在线程安全方面的区别

在线程安全方面,HashTable和Dictionary之间有什么区别吗?我没有看到任何......根据msdn,两者的定义如下: -

哈希表

Hashtable是线程安全的,可供多个读取器线程和单个写入线程使用.当只有一个线程执行写(更新)操作时,它对多线程使用是线程安全的,如果编写器被序列化为Hashtable,则允许无锁读取.

字典

只要未修改集合,Dictionary就可以同时支持多个读取器.即便如此,通过集合枚举本质上不是一个线程安全的过程.在枚举与写访问争用的极少数情况下,必须在整个枚举期间锁定该集合.要允许多个线程访问集合以进行读写,您必须实现自己的同步.

.net dictionary hashtable

4
推荐指数
1
解决办法
4559
查看次数

java传递值和内存以及cpu利用率

来自C背景我有一个非常基本的问题:传递一个像String数组这样的更大数据类型的值会调用java中的复制构造函数.

因此,此代码会导致通过复制list2中的列表在内存中创建重复列表.因此双内存和CPU利用率.

String[] getList() {
    String[] list = new String...
    ...
    return list;
}

String [] list2 = getList();
Run Code Online (Sandbox Code Playgroud)

我的假设是否正确?如果是,是否有像C中传递指针的替代方法.

PS:如果我们让垃圾收集器完成清理额外内存的工作,那么这不是另一组清理内存的CPU利用率,而这些内存本来就不应该创建.

java

4
推荐指数
2
解决办法
115
查看次数

C#Boilerplate代码

我正在考虑构建一些通用扩展,它们将采用所有这些null,抛出检查和断言,而是使用流畅的API来处理这个问题.

所以我想做这样的事情.

Shall() - Not quite sure about this one yet
    .Test(...) - Determines whether the contained logic executed without any errors
    .Guard(...) - Guards the contained logic from throwing any exception
    .Assert(...) - Asserts before the execution of the code
    .Throw(...) - Throws an exception based on a certain condition
    .Assume(...) - Similar to assert but calls to Contract.Assume
Run Code Online (Sandbox Code Playgroud)

用法:father.Shall().Guard(f => f.Shop())

问题是我在运行时不想要这些额外的调用,我知道AOP可以为我解决这个问题,我想直接将这些调用内联到调用者,如果你有更好的方法,请告诉我.

现在,在我研究或做任何事情之前,我想知道某人是否已经这样做或知道正在做的工具?

我真的想构建类似的东西并将其发布给公众,因为我认为它可以节省大量时间和头痛.

一些例子.

DbSet<TEntity> set = Set<TEntity>();

if (set != null)
{
    if (Contains(entity))
    {
        set.Remove(entity); …
Run Code Online (Sandbox Code Playgroud)

c# boilerplate

2
推荐指数
1
解决办法
2070
查看次数

字段在方法内不起作用

我有这个问题,更多的是一个查询,因为我实际上让它工作,但我不明白为什么,我目前正在学习java和阅读cengage第7版,这是练习之一.

所以我有这个方法:

public static void calculatePrice(){
        Scanner userInput = new Scanner(System.in);
        int orderNumber;
        double totalBill = 0;

        orderNumber = userInput.nextInt();
        switch(orderNumber){
        case 1:
            totalBill = totalBill + American;
            displayMenu();
            calculatePrice();
            break;
        case 2:
            totalBill = totalBill + Espresso;
            displayMenu();
            calculatePrice();
            break;
        case 3:
            totalBill = totalBill + Latte;
            displayMenu();
            calculatePrice();
            break;
        case 0:
            System.out.println("Your total bill will be $"+ totalBill);
            break;
        }
    }
Run Code Online (Sandbox Code Playgroud)

本章教我决定,我决定在这种情况下使用开关.我有另一种方法询问用户问题.

这个方法的问题是字段:

double totalBill = 0;
Run Code Online (Sandbox Code Playgroud)

这不起作用,我不知道为什么,程序编译但它始终返回设定价格0,无论我在案例场景中的逻辑.

但是,当我从方法中删除该字段并将其放在顶部时,使其成为类宽:

private static double totalBill = 0;
Run Code Online (Sandbox Code Playgroud)

它工作正常,这是为什么?在方法中使用它似乎更聪明,因为没有其他方法需要使用它.

java

2
推荐指数
1
解决办法
72
查看次数