可以在Objective c上导入Java模型吗?

可以在Objective c上导入Java模型吗?,java,ios,objective-c,json,Java,Ios,Objective C,Json,我在服务器上有一些Java模型,但在我的iOS应用程序中,我使用的JSON没有序列化程序,因为我的服务器没有Objective-C模型生成器 可以在Objective-C中集成Java模型类吗 怎么做?是的,你当然可以,但你会发现你在翻译方面做得更好 以下是逐步说明源: 创建一个名为HeloBo桥的新基金项目 创建一个名为JavaClasses的新纯Java包目标 创建一个名为HelloBridge.Java的新Java类,并将其添加到目标 JavaClass: public class Hel

我在服务器上有一些Java模型,但在我的iOS应用程序中,我使用的JSON没有序列化程序,因为我的服务器没有Objective-C模型生成器

可以在Objective-C中集成Java模型类吗


怎么做?

是的,你当然可以,但你会发现你在翻译方面做得更好

以下是逐步说明源:

创建一个名为HeloBo桥的新基金项目 创建一个名为JavaClasses的新纯Java包目标 创建一个名为HelloBridge.Java的新Java类,并将其添加到目标 JavaClass:

public class HelloBridge {
   private String string = "Hello";

   public void setString(String string) {
      this.string = string;
   }

   public String getString() {
      return this.string;
   }

   public void printString() {
      System.out.println(this.string);
   }
}
将HelloBridge.java添加到目标中的源代码构建阶段 JavaClass

创建一个名为JavaInterfaces.h的新空文件,并将其添加到 目标海洛布里奇:

// Provide Objective-C interfaces for the Java classes
// Not only good practice, it provides Code Sense
@interface java_util_Vector : NSObject
{}
- (void)add:(id)anObject;
- (id)get:(int)index;
@end

@interface HelloBridge : NSObject
{}
- (void)setString:(NSString *)string;
- (NSString *)getString;
- (void)printString;
@end
修改main.m:

#import <Foundation/Foundation.h>
#import "JavaInterfaces.h"

int main (int argc, const char * argv[]) {
   NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

   // Load the Java VM
   id vm = NSJavaSetupVirtualMachine();

   // Start the Java class loader
   NSJavaClassesFromPath(nil, nil, YES, &vm);

   // Load a new instance of the java.util.Vector Java class into an Objective-C pointer
   java_util_Vector * vector = NSJavaObjectNamedInPath(@"java.util.Vector", nil);
   [vector add:@"one item!"];
   NSLog(@"item 1=%@",[vector get:0]);
   [vector release];

   // Load a new instance of our custom HelloBridge Java class into an Objective-C pointer
   HelloBridge * hello = NSJavaObjectNamedInPath(@"HelloBridge", nil);
   NSLog(@"item 1=%@",[hello getString]);
   [hello setString:@"Test"];
   NSLog(@"item 1=%@",[hello getString]);
   [hello printString];
   [hello release];

   [pool release];
   return 0;
}
从目标下拉框中选择JavaClass并构建它

从目标下拉框中选择HelloBridge并构建/运行它


哇,有点复杂。无论如何,谢谢你:我告诉过你最好翻译成NSObjects: