小编cqc*_*law的帖子

UUID.randomUUID()是否适合用作一次性密码?

正如前面所讨论的,确认电子邮件应该有一个独特的,(几乎)未猜测的代码-基本上是一个一次性密码 --in确认链接.

UUID.randomUUID()文档说:

使用加密强伪随机数生成器生成UUID.

这是否意味着正确实现的JVM中的UUID随机生成器适合用作唯一的(实际上)不可猜测的OTP?

java security random uuid

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

从String.getBytes("UTF-8")处理UnsupportedEncodingException的推荐方法

在库方法中调用String.getBytes("UTF-8")时,处理UnsupportedEncodingException的推荐方法是什么?

如果我正确地阅读http://docs.oracle.com/javase/6/docs/technotes/guides/intl/encoding.doc.html,UTF-8编码应始终可用,这让我相信没有将此异常传递给库的使用者的原因(即,throws在方法签名中添加一个子句).似乎任何使UTF-8编码工具不可用的故障模式都是灾难性的,导致我编写这个处理程序:

    try
    {
        ....
        return "blah".getBytes("UTF-8");
    }
    catch (UnsupportedEncodingException e)
    {
        // we're assuming UTF-8 encoding is always available.
        // see
        // http://docs.oracle.com/javase/6/docs/technotes/guides/intl/encoding.doc.html
        e.printStackTrace();
        return null; //prevent compile-time "method must return a result" errors
    }
Run Code Online (Sandbox Code Playgroud)

是否存在此代码段无法解决的故障模式?

java string character-encoding

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

是否有一种干净的方法将泛型类分配给变量?

鉴于此代码:

List<Integer> ints = new ArrayList<Integer>();

// Type mismatch: 
// cannot convert from Class<capture#1-of ? extends List> to Class<List<Integer>>       
Class<List<Integer>> typeTry1 = ints.getClass(); 

// Type safety: 
// Unchecked cast from Class<capture#2-of ? extends List> to Class<List<Integer>>
Class<List<Integer>> typeTry2 = (Class<List<Integer>>) ints.getClass();

// List is a raw type. References to generic type List<E> should be parameterized
Class<? extends List> typeTry3 = ints.getClass(); 
Run Code Online (Sandbox Code Playgroud)

有没有办法在没有错误或警告ClassList<Integer>情况下获得?我可以很容易地抑制警告,但如果Java要求我禁止对这个有效代码发出警告,我会非常失望.

另一方面,如果警告抑制是唯一的方法,最安全的压制是什么?

java generics

13
推荐指数
1
解决办法
3458
查看次数

带部分限定命名空间的引用类型

是否可以引用具有部分限定名称的Java类型?如果是这样,怎么样?

场景:我经常发现自己有一个Activity需要视图的数据类(例如).我的标准做法是命名这个有效的类ActivityView,但是这个视图类总是以tld.organization.project.views命名空间结束,其中"View"后缀完全是多余的.

我想删除"View"后缀(因此类型将是tld.organization.project.Activitytld.organization.project.views.Activity),但这意味着当我在同一个类中引用它们时,我必须使用命名空间来限定类型.使用命名空间来限定类型引用本身并不是一件坏事,但重复任何一种类型的完全限定名称都是重复且难以阅读的.

引用部分限定类型(类似于~.Activity或类似的东西~.views.Activity)将删除那个残余.某种类型的别名会回答,但似乎Java不支持这种功能.还有其他选择吗?

java types

12
推荐指数
1
解决办法
2379
查看次数

java generic String to <T> parser

是否有直接的方法来实现具有以下签名的方法?至少,实现需要处理原始类型(例如Double和Integer).非原始类型将是一个很好的奖金.

//Attempt to instantiate an object of type T from the given input string
//Return a default value if parsing fails   
static <T> T fromString(String input, T defaultValue)
Run Code Online (Sandbox Code Playgroud)

对于实现FromString接口(或等效的)的对象,实现将是微不足道的,但我还没有找到任何这样的东西.我还没有找到使用反射的功能实现.

java generics string-parsing

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

为什么 CMake COMPILER_DEFINITIONS 不传播到子目录?

根据set_directory_properties 文档,目录上设置的属性应该传播到子目录:

\n\n
\n

设置当前目录和子目录的属性。

\n
\n\n

根据支持的属性文档,COMPILE_DEFINITIONS 是目录支持的属性。

\n\n

鉴于此,为什么目录的 COMPILE_DEFINITIONS 不传播到以下示例中的子目录?

\n\n

示例项目文件结构

\n\n
- CMakeLists.txt\n- sub\n   -CMakeLists.txt\n   -main.cpp\n
Run Code Online (Sandbox Code Playgroud)\n\n

文件内容

\n\n

根 CMakeLists.txt:

\n\n
cmake_minimum_required(VERSION 2.8.11)\nproject(cmake_sandbox)\nadd_subdirectory(sub)\nset_directory_properties(PROPERTIES COMPILE_DEFINITIONS SHOW_MESSAGE=1)\n
Run Code Online (Sandbox Code Playgroud)\n\n

子 CMakeLists.txt:

\n\n
add_executable(hello main.cpp)\n
Run Code Online (Sandbox Code Playgroud)\n\n

主要.cpp:

\n\n
#include <iostream>\nusing namespace std;\n\nint main()\n{\n    #define A_LOCAL_MESSAGE\n    #ifdef A_LOCAL_MESSAGE\n    #pragma message("A local message!")\n    #else\n    #pragma message("No local message!")\n    #endif\n\n    #ifdef SHOW_MESSAGE\n    #pragma message("A message!")\n    #else\n    #pragma message("No message!")\n    #endif\n    cout << "Hello, World!\\n";\n    return 0;\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n …

c++ cmake

7
推荐指数
1
解决办法
1677
查看次数

如何在CellTable中完全禁用行选择?

我希望在CellTable中选择行时完全查看更新.如何才能做到这一点?在以下测试用例中,使用NoSelectionModel,视图仍然更新:单击一行会更改行的背景和边框颜色,直到单击另一行.

    CellTable<String> table = new CellTable<String>();

    TextColumn<String> column = new TextColumn<String>()
    {
        @Override
        public String getValue(String string)
        {
            return string;
        }
    };

    table.addColumn(column);

    List<String> sampleData = Arrays.asList("foo", "bar", "baz");

    table.setRowData(sampleData);

    final NoSelectionModel<String> selectionModel = new NoSelectionModel<String>();
    table.setSelectionModel(selectionModel);

    RootPanel.get().add(table);
Run Code Online (Sandbox Code Playgroud)

我还尝试使用空覆盖方法对SingleSelectionModel进行子类化,但没有成功.

我可以通过为选定的行提供空的CSS样式来伪造我想要的行为,但是这种方法看起来很糟糕.

java gwt

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

在达到超时之前,如何读取UDP连接?

我需要读取UDP流量,直到达到超时.我可以通过在UDPConn上调用SetDeadline并循环直到我得到I/O超时错误来做到这一点,但这似乎是hack-ish(基于错误条件的流量控制).以下代码段似乎更正确,但不会终止.在生产中,这显然会在goroutine中执行; 为了简单起见,它是作为主要功能编写的.

package main

import (
    "fmt"
    "time"
)

func main() {
    for {
        select {
        case <-time.After(time.Second * 1):
            fmt.Printf("Finished listening.\n")
            return
        default:
            fmt.Printf("Listening...\n")
            //read from UDPConn here
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么给定的程序不会终止?基于https://gobyexample.com/select,https://gobyexample.com/timeoutshttps://gobyexample.com/non-blocking-channel-operations,我希望上面的代码,选择默认的情况下,一秒钟,然后采取第一种情况,并打破循环.如何修改上面的代码段以实现循环和读取所需的效果,直到发生超时?

concurrency udp network-programming go

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

如何在Google App Engine的应用日志中显示例外的完整堆栈跟踪?

在Google App Engine上部署的应用程序中从数据存储区中分离对象时,我遇到了"无法分离"的异常,我无法在我的开发框中重现该异常.分离操作是服务器端的,因此我唯一的信息是应用程序日志文件中的异常日志.然而,堆栈跟踪被省略:例如,最深的内部异常以"...... 36多"结束.

如何调整应用程序日志记录的详细程度以包括完整的,非省略的堆栈跟踪?

logging google-app-engine exception-handling

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