小编Zor*_*lub的帖子

是否可以告诉编译器方法总是抛出异常

一般来说,Java编译器不会传播方法"总是"抛出异常的信息,因此不会检测到所有代码路径都是完整的.

(这是因为Java编译器独立编译每个类).

当你想写那样的东西时,这是一个问题.

public class ErrorContext {
    public void fatalISE(String message) {
        String context = "gather lots of information about the context of the error";
        throw new IllegalStateException(context +": " + message);
    }
}

public class A {
    public MyObject myMethod() {
        if (allIsGood()) {
            return new MyObject();
        }
        ErrorContext.fatalISE("all is not good");
    }
}
Run Code Online (Sandbox Code Playgroud)

(即,一种收集上下文信息的"断言助手").

因为编译器会抱怨myMethod并不总是返回MyObject.

据我所知,没有特定的注释来表明方法总是抛出.

java

23
推荐指数
4
解决办法
3001
查看次数

猪:将一个FOREACH操作符应用于包中的每个元素

示例:我有一个关系"class",有一个嵌套的学生包:

class: {teacher_name: chararray,students: {(firstname: chararray, lastname: chararray)}
Run Code Online (Sandbox Code Playgroud)

我想对每个学生进行操作,同时保持全局结构不受影响,即获得:

class: {teacher_name: chararray,students: {(fullname: chararray)}
Run Code Online (Sandbox Code Playgroud)

每个学生的位置,fullname = CONCAT(名字,姓氏)

我的理解是嵌套的FOREACH不是我的解决方案,因为它仍然只为每个输入元组生成1条记录,而我想要在每个包项目中应用的东西.

使用UDF非常容易,但想知道是否可以在纯粹的Piglatin中进行

apache-pig

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

标签 统计

apache-pig ×1

java ×1