2013-08-23 68 views
6

Tôi đang cố gắng chuyển đổi mã Java thành Objective-C. Lớp bên dưới là phần mở rộng của TestCodeRequest. Tự hỏi làm thế nào để chuyển đổi này thành một mục tiêu C tương đương. Tôi tìm thấy nó một chút bối rối vì Java được gõ tĩnh, và cấu hình trên quy ước. Trong khi Objective-C được gõ động và quy ước trên cấu hình. Tôi có một mã mẫu dưới đây. Bất kỳ gợi ý nhỏ nào cũng thực sự tuyệt vời.Chuyển đổi Java thành mục tiêu C

package com.TestCode.api; 

import java.io.IOException; 

import oauth.signpost.exception.OAuthCommunicationException; 
import oauth.signpost.exception.OAuthExpectationFailedException; 
import oauth.signpost.exception.OAuthMessageSignerException; 

import org.json.JSONObject; 

public class Categories extends TestCodeRequest { 

    public Categories(String apiKey, String apiSecret) { 
      super(apiKey, apiSecret, "categories"); 
    } 

    public Categories field(Object... fields) { 
     super.field(fields); 
     return this; 
    } 

    public JSONObject getCategories() throws OAuthMessageSignerException, OAuthExpectationFailedException, OAuthCommunicationException, IOException { 
     return this.get(); 
    } 

    public Categories categoriesField(Object... fields) { 
     return this.field(fields); 
    } 

} 

Trả lời

11

Có một số Java tốt cho trình dịch C mục tiêu. Đối với mã rằng đơn giản, tất cả đều nên hoạt động. Ở những nơi mà các dịch giả thường gặp nhiều rắc rối là dịch các cuộc gọi đến các thư viện thời gian chạy vì các triết lý khác nhau của chúng (đặc biệt là trong lĩnh vực giao diện và tương tác của người dùng). Để làm một công việc tốt ở đây, họ cần phải đi từ cú pháp trở lại ngữ nghĩa, và điều này là cực kỳ khó khăn cho phần mềm để làm.

Cụm từ của bạn "Java được nhập tĩnh và cấu hình theo quy ước. Trong khi Mục tiêu-C được nhập động và quy ước về cấu hình" không thể tham chiếu đến điều này. Phát triển GUI cụ thể. Khía cạnh này của các ngôn ngữ không phải là bản chất đối với chúng, nhưng thuộc về các thư viện mà các nhà phát triển thường sử dụng, trong nhiều trường hợp phụ thuộc vào các Hệ điều hành cụ thể. Vì vậy, có lẽ chúng ta không nói nhiều về việc chuyển đổi Java sang Objective C như chuyển đổi từ giao diện Swing và chế độ tương tác sang giao diện iOS.

Tất cả đều được xem xét, tôi khuyên bạn nên sử dụng các công cụ chuyển đổi tự động làm công cụ học tập. Bạn sẽ thấy rằng các đoạn mã được tạo ra (khi chúng trở nên phức tạp hơn và/hoặc kết hợp các giao diện người dùng) ngay cả khi chúng hoạt động, không phù hợp để bảo trì hoặc phát triển hơn nữa và cần được mã hóa lại nếu không được thiết kế lại. Nhưng một lần nữa, khi các công cụ học tập chúng rất hữu ích.

  • Google J2ObjC
  • java2objc
  • JCGO một này chuyển đến C. Nếu mục đích là để có một cái gì đó làm việc, điều này có thể là đủ tốt. Không phải nếu mục đích là để tìm hiểu Mục tiêu C trong tất cả sự lộng lẫy của nó.
+0

Câu trả lời hay cho câu hỏi rất mơ hồ. (Bình chọn) –

+0

Mục tiêu C có huy hoàng? – noelicus

Các vấn đề liên quan