小编Esk*_*sko的帖子

Cookie中允许的字符

这个是一个快速的:

cookie名称和值中允许的字符是什么?它们与URL或某些常见子集相同吗?

我要问的原因是,我最近发现了一些奇怪的行为,其中包含-名称中的cookie,我只是想知道它是否是浏览器特定的,或者我的代码是否有问题.

cookies

290
推荐指数
6
解决办法
15万
查看次数

枚举值().长度与私有字段

我有这样的枚举:

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)

什么是最快,更优雅的解决方案?

java enums

55
推荐指数
4
解决办法
6万
查看次数

Java的序列化如何工作以及何时应该使用它而不是其他一些持久性技术?

我最近一直在努力学习更多,并且通常测试Java的工作和个人项目的序列化,我必须说我越了解它,我就越不喜欢它.这可能是由错误的信息造成的,所以这就是为什么我要问你们这两件事:

1:在字节级别,序列化如何知道如何将序列化值与某些类匹配?

我在这里的一个问题是我用ArrayList进行了一个小测试,其中包含值"one","two","three".在序列化之后,字节数组占用了78个字节,这对于如此少量的信息(19 + 3 + 3 + 4字节)来说似乎非常多.当然,这肯定会有一些开销,但这导致了我的第二个问题:

2:序列化可以被认为是持久化对象的好方法吗?现在很明显,如果我使用一些自制的XML格式,持久性数据将是这样的

<object>
    <class="java.util.ArrayList">
    <!-- Object array inside Arraylist is called elementData -->
    <field name="elementData">
        <value>One</value>
        <value>Two</value>
        <value>Three</value>
    </field>
</object>
Run Code Online (Sandbox Code Playgroud)

与XML一般来说,它有点膨胀,占用138个字节(没有空格,即).JSON中也是如此

{
    "java.util.ArrayList": {
        "elementData": [
            "one",
            "two",
            "three"
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)

这是75字节所以已经比Java的序列化略小.使用这些基于文本的格式,显然必须有一种方法可以将基本数据表示为文本,数字或两者的任意组合.

那么回顾一下,序列化如何在字节/位级别上工作,何时应该使用以及何时不应该使用序列化以及序列化的真正好处除了它是Java的标准之外?

java serialization

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

在程序中替换或替换if..else if..else树的最佳方法是什么?

这个问题的动机是我最近开始看到的有点过于if..else if..else结构的东西.虽然它很简单并且有其用途,但它的一些东西不断告诉我它可以用更精细,优雅和通常更容易保持最新的东西代替.

为了尽可能具体,这就是我的意思:

if (i == 1) {
    doOne();
} else if (i == 2) {
    doTwo();
} else if (i == 3) {
    doThree();
} else {
    doNone();
}
Run Code Online (Sandbox Code Playgroud)

我可以想到两种简单的方法来重写它,或者通过三元(这只是编写相同结构的另一种方式):

(i == 1) ? doOne() : 
(i == 2) ? doTwo() :
(i == 3) ? doThree() : doNone();
Run Code Online (Sandbox Code Playgroud)

或使用Map(在Java中,我认为在C#中)或字典或任何其他K/V结构,如下所示:

public interface IFunctor() {
    void call();
}

public class OneFunctor implemets IFunctor() {
    void call() {
        ref.doOne();
    }
}

/* etc. */    

Map<Integer, IFunctor> methods = new …
Run Code Online (Sandbox Code Playgroud)

language-agnostic design-patterns

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

默认数组值

有没有办法在javascript中为数组分配默认值?

例如: an array with 24 slots that defaults to 0

javascript arrays

30
推荐指数
6
解决办法
6万
查看次数

Windows Phone 8 IE10 Javascript调试

IE10在HTML5合规区域有一些很棒的增强功能,但在WP8上运行时仍然是开发JavaScript HTML5的熊,因为除了控制台消息之外无法调试应用程序.

是否有可用的像WebKit的浏览器的手机有WP8运行IE10远程调试经验(见我在视频http://www.youtube.com/watch?v=GNAjzFpNEj4为例).当使用USB线到桌面Safari调试时,IOS上的Javascript应用很容易,因为可以设置断点并在远程调试器中检查变量.我希望IE10中具有相同的功能,并希望获得有关在何处启用这些非常需要的功能的任何信息.

javascript internet-explorer-10 windows-phone-8

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

用短月解析一个没有点的月份

我有一个字符串,表示法语区域的日期:09-oct-08:

我需要解析那个String,所以我想出了这个SimpleDateFormat:

String format2 = "dd-MMM-yy";
Run Code Online (Sandbox Code Playgroud)

但是我对月份部分有一个问题,似乎预计会有一个结束点:

df2.format(new Date());
Run Code Online (Sandbox Code Playgroud)

给我 :

 28-oct.-09
Run Code Online (Sandbox Code Playgroud)

现在什么是让我理解SimpleDateFormat("09-oct-08")的最好方法?

完整代码:

String format2 = "dd-MMM-yy"; 
DateFormat df2 = new SimpleDateFormat(format2,Locale.FRENCH); 
date = df2.parse("09-oct-08"); 
Run Code Online (Sandbox Code Playgroud)

这给了我:java.text.ParseException:Unparseable date:"09-oct-08"

如果我然后尝试记录:

df2.format(new Date()); 
Run Code Online (Sandbox Code Playgroud)

我明白了:28-oct.-09

java locale date-format

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

Java注释可以进行单元测试吗?

我最近开始创建自己的注释并运行TDD/BDD,我想要对我的注释进行单元测试,为它们创建一个清晰的规范.然而,由于注释基本上只是花哨的界面,据我所知,这些界面无法直接实例化,是否有任何方法缺乏反映单元测试注释?

java tdd bdd annotations

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

使用Groovy MetaClass覆盖方法

我有一个POJO使用服务来做某事:

public class PlainOldJavaObject {

    private IService service;

    public String publicMethod(String x) {
        return doCallService(x);
    }

    public String doCallService(String x) {
        if(service == null) {
            throw new RuntimeException("Service must not be null");
        }
        return service.callX(x);
    }

    public interface IService {
        String callX(Object o);
    }
}
Run Code Online (Sandbox Code Playgroud)

我有一个Groovy测试用例:

class GTest extends GroovyTestCase {

    def testInjectedMockIFace() {
        def pojo = new PlainOldJavaObject( service: { callX: "very groovy" } as IService )
        assert "very groovy" == pojo.publicMethod("arg")
    }

    def testMetaClass() {
        def pojo = …
Run Code Online (Sandbox Code Playgroud)

groovy unit-testing programming-languages dynamic-languages mocking

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

将整数表示为一系列乘数

向下滚动以查看最新的编辑,我在此留下所有这些文本,以便我不会使此问题到目前为止收到的回复无效!


我有以下的脑筋急转弯我希望得到一个解决方案,我试图解决这个问题,但是因为我在数学上没有那么高于平均水平(也就是说,我认为我非常接近平均水平)我可以'似乎把我的头围住了.

的问题:给定数目x应拆分到的系列multipliers,其中每个multiplier <= y,y是像10或16或任何一个常数.在系列(技术上array of integers)中,应该添加最后一个数字而不是相乘以能够将乘数转换回原始数字.

作为一个例子,让我们假设x=29y=10.在这种情况下,预期的数组将是{10,2,9}有意义的10*2+9.但是,如果y=5它是{5,5,4}意义5*5+4或者是否y=3,它将是{3,3,3,2}那样的3*3*3+2.

我尝试通过这样做来解决这个问题:

  1. 同时x >= y,存储ymultipliers,然后x = x - y
  2. 什么时候x < y,存储xmultipliers

显然这不起作用,我也尝试分别存储"剩余"部分,并在其他所有内容之后添加,但这也不起作用.我认为我的主要问题是我试图以过于复杂的方式思考这个问题,而解决方案显而易见且简单明了.

重申一下,这些是此算法应具有的限制:

  • 必须使用64位长
  • 必须返回一个32位整数数组(......好吧,短裤也可以)
  • 虽然支持已签名的数字(+和 - )会很好,如果它有助于任务只有无符号数字是必须的

虽然我使用Java做这个,但我宁愿将任何可能的代码示例作为伪代码,我特别不想轻易做出答案,我只需要一个轻推(好吧,更多的强力踢)以便我可以解决这至少部分是我自己.提前致谢.

编辑:进一步澄清

为了避免一些混乱,我想我应该改写一下:

  • 结果数组中的每个整数应小于或等于y,包括最后一个数字.
  • 是的,最后一个数字只是一个神奇的数字.
  • 不,这不是模数,因为在大多数情况下第二个数字将大于y.
  • 是的,大多数可用数字都有多个答案,但是我正在寻找数学运算量最少的数字.至于我的逻辑是,这意味着找到大乘数尽可能的最高金额,例如x=1 000 000,y=100 …

language-agnostic algorithm

11
推荐指数
3
解决办法
1913
查看次数