Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用sun codemodel创建抽象方法实现?_Java_Sun Codemodel - Fatal编程技术网

Java 使用sun codemodel创建抽象方法实现?

Java 使用sun codemodel创建抽象方法实现?,java,sun-codemodel,Java,Sun Codemodel,我正在尝试使用sun codemodel创建以下内容 JavaRDD<Activitydaily> activityBatchDailyRDDs = activityBatchDailyFunction.cassandraTable("test", "tbl") .map(new Function<CassandraRow, Activitydaily>() { public Activitydaily call(Cass

我正在尝试使用sun codemodel创建以下内容

JavaRDD<Activitydaily> activityBatchDailyRDDs = 
    activityBatchDailyFunction.cassandraTable("test", "tbl")
        .map(new Function<CassandraRow, Activitydaily>() {
            public Activitydaily call(CassandraRow v1) throws Exception {
                return new Activitydaily();
            }
         });
下面是我当前的输出

JavaRDD<Activitydaily> ActivitydailyRDD = 
    ActivitydailyFunction.cassandraTable("demo", "activitydaily")
        .map(new Function<CassandraRow, Activitydaily>());
JavaRDD activitydailryrdd=
ActivitydailyFunction.cassandraTable(“演示”、“activitydaily”)
.map(新函数());

这里真正的问题是:如何定义匿名内部类

要定义anonymouse内部类,只需在
Jcm
实例上使用
anonymousClass()
方法:

JDefinedClass anonymousFunctionClass = cm.anonymousClass(function.narrow(cassandraRow, activityBatchDailyRealTimeBean));
JMethod callMethod = anonymousFunctionClass.method(JMod.PUBLIC, Activitydaily.class, "call");
callMethod._throws(Exception.class);
JVar v1Param = callMethod.param(CassandraRow.class, "v1");
callMethod.body()._return(JExpr._new(cm.ref(Activitydaily.class)));
然后在
JExpr.\u new()
调用中使用它:

JClass cassandraConnector = cm.directClass("com.datastax.spark.connector.cql.CassandraConnector");

// Anonymous inner class declaration:
JDefinedClass anonymousFunctionClass = cm.anonymousClass(function.narrow(cassandraRow, activityBatchDailyRealTimeBean));
JMethod callMethod = anonymousFunctionClass.method(JMod.PUBLIC, Activitydaily.class, "call");
callMethod._throws(Exception.class);
JVar v1Param = callMethod.param(CassandraRow.class, "v1");
callMethod.body()._return(JExpr._new(cm.ref(Activitydaily.class)));

JExpression functionExpression = JExpr._new(anonymousFunctionClass);

JExpression javaRDDAssignmentExpression = JExpr
    .invoke(JExpr.ref(className + "Function"), "cassandraTable")
        .arg(schema).arg(table);
javaRDDAssignmentExpression = javaRDDAssignmentExpression.invoke("map")
    .arg(functionExpression);
executerBlock.decl(javaRDD.narrow(activityBatchDailyRealTimeBean),
        className + "RDD", javaRDDAssignmentExpression);
其结果如下所示:

activityBatchDailyFunction.cassandraTable("test", "tbl")
    .map(new Function<CassandraRow,Activity_daily>() {
        public Activity_daily call(CassandraRow v1) {
            return new Activity_daily();
        }
    }
);
activityBatchDailyFunction.cassandraTable(“测试”,“待测试”)
.map(新函数(){
公共活动(每日电话)(卡桑德拉罗v1){
每天返回新活动();
}
}
);

Hmm,在哪一行?在回顾中,我注意到我没有用cm替换codeModel(来自您的示例),我已经更新了响应。
activityBatchDailyFunction.cassandraTable("test", "tbl")
    .map(new Function<CassandraRow,Activity_daily>() {
        public Activity_daily call(CassandraRow v1) {
            return new Activity_daily();
        }
    }
);