小编Jir*_*rka的帖子

Python:将文件打印到stdout

我搜索过,我只能找到相反的问题:将stdin写入文件:)

有没有一种快速简便的方法将文件的内容转储到stdout?

python

75
推荐指数
4
解决办法
11万
查看次数

ClassCast错误:Java 7与Java 8

这是一个错误或功能吗?以下代码在Java 7中运行正常但在Java 8中引发异常:

最后一个命令在Java8中抛出ClassCast异常,上面的所有"等效"命令的工作方式相同.

我认为问题在于,在Java 8中,编译器决定String.value(char[])在最后一行而不是String.value(Object)在Java 7中使用.我认为这对于向后兼容性应该采用相同的方式.我错过了什么吗?

注意:正如Marko所说,这可能与Java 8中引入的目标类型推断有关.

public class Test {
    public static void main(String[] args) {
        System.out.println( getVal().getClass());  // String

        System.out.println( String.valueOf(Test.<Object>getVal()) );   // "abc"

        Object obj = getVal();
        System.out.println( String.valueOf(obj) );  // "abc"

        System.out.println( String.valueOf(getVal()) ); // 7: "abc", 8: Exception 
    }

    // returns a string for simplicity; imagine that given a field, it fetches values from a database
    @SuppressWarnings("unchecked")
    public static <T> T getVal() {
        return (T) "abc";
    }
}
Run Code Online (Sandbox Code Playgroud)

Java …

java generics casting java-8

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

将带有类型参数的类传递给函数

让我们假设以下方法(比如来自Guava的Iterables):

public static <T> Iterable<T> filter(final Iterable<?> unfiltered, final Class<T> type) {
    return null;
}
Run Code Online (Sandbox Code Playgroud)

而这个集合:

Set<?> objs = ...;
Run Code Online (Sandbox Code Playgroud)

然后编译以下代码并正确派生泛型

Iterable<String> a2 = Iterables.filter(objs, String.class);
Run Code Online (Sandbox Code Playgroud)

(在Guava中,这将返回所有字符串的迭代objs.)

但现在让我们假设以下类:

static class Abc<E> {
    E someField;
}
Run Code Online (Sandbox Code Playgroud)

我不知道怎么打电话filter和得到Iterable<Abc<?>>:

Iterable<Abc>    a3 = Iterables.filter(objs, Abc.class);
Iterable<Abc<?>> a4 = Iterables.filter(objs, Abc.class); // Compile error - Abc and Abc<?> are incompatible types
Iterable<Abc<?>> a5 = Iterables.filter(objs, Abc<?>.class); // Compile error
Iterable<Abc<?>> a6 = Iterables.<Abc<?>>filter(objs, Abc.class); // Compile error
Iterable<Abc<?>> a7 …
Run Code Online (Sandbox Code Playgroud)

java generics

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

Lucene/Solr:存储某些关键字的偏移信息

我们使用Solr来存储带有关键字的文档; 每个关键字都与文档中的范围相关联.

在将它们加载到Solr之前,关键字是由一些花哨的分析和/或手工工作产生的.关键字可以在文档中重复多次.另一方面,单个文档中相同字符串的不同实例可以与不同的关键字连接.

例如,本文档

Bill studied The Bill of Rights last summer.
Run Code Online (Sandbox Code Playgroud)

可以附带以下关键字(括号中的偏移量):

William Brown (0:4)
legal term (13:31)  
summer 2011 (32:43)
Run Code Online (Sandbox Code Playgroud)

(显然在其他文件中,比尔可以提到比尔克林顿比尔盖茨.同样,去年夏天将在不同的文件中提到不同的年份.我们确实拥有所有这些文件的所有信息.)

我知道文档可以有一个字段,比如KEYWORD,它将存储William Brown.然后当我搜索时,William Brown我会得到上面的文件.那部分很容易.

但我不知道如何存储与William Brown文本范围相对应的信息,0:4因此我可以突出显示第一个Bill,但不是第二个.

我以为我可以使用TermVectors,但我不确定是否/如何存储自定义偏移量.我认为这是一个相当常见的情况......

编辑:编辑,以明确比尔可以参考不同文件中的不同人/事.

EDIT2:编辑以明确文档可以包含同音异义词(具有不同含义的相同字符串).

lucene solr

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

什么是qore中的函数参数范围?

我对qore 0.8.12中的变量范围感到有些困惑.似乎函数参数与全局变量具有相同的范围 - 这是可能的,还是我做错了什么?

3.1.0 kveton@kvela ~$ cat zk1.q 
%new-style
%strict-args

sub fun(string v)
{
    print("xxx\n");
}

string v = "zzz";
3.1.0 kveton@kvela ~$ qore zk1.q 
unhandled QORE System exception thrown in TID 1 at 2017-01-30 08:10:32.612137 Mon +01:00 (CET) at zk1.q:4
PARSE-ERROR: local variable 'v' was already declared in the same block at zk1.q:9
Run Code Online (Sandbox Code Playgroud)

谢谢你的解释......

unix qore

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

如何在Qore中将长列表拆分成碎片

我想在Qore中拆分列表,如下所示:

list a = (1,2,3,4,5,6);
list pieces = split_list_into_pieces(a, 2);
printf("%y\n", pieces);
Run Code Online (Sandbox Code Playgroud)

期望的输出:

[[1,2], [3,4], [5,6]]
Run Code Online (Sandbox Code Playgroud)

即我想要一个(据称很长)列表并将其分成给定(最大)长度的片段.

我可以这样做:

list sub split_list_into_pieces(list a, int length)
{
    int i = 0;
    list ret = ();
    list temp = ();
    foreach any x in (a)
    {
        temp += x;
        i++;
        if (i == length)
        {
            push ret, temp;
            temp = ();
            i = 0;
        }
    }
    if (temp)
    {
        push ret, temp;
    }
    return ret;
}
Run Code Online (Sandbox Code Playgroud)

但它不是很优雅,是吗?

更好的解决方案?

arrays qore

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

标签 统计

generics ×2

java ×2

qore ×2

arrays ×1

casting ×1

java-8 ×1

lucene ×1

python ×1

solr ×1

unix ×1