2017-06-12 15 views
6

Được phép trong Java có một phương thức trừu tượng trong một lớp và sau đó thực hiện nó bằng ngôn ngữ bản địa khác bằng cách sử dụng JNI.Việc triển khai thực hiện phương pháp trừu tượng theo kiểu gốc

dụ:

abstract class Mommy { 
abstract protected void call(); 
} 
class Son extends Mommy { 
native protected void call() /* 
'native code' 
*/ 
} 

gì được hành vi dự kiến ​​nó là một lỗi thời gian chạy mà có thể xảy ra hay mọi thứ đều tốt với "workaround"?

+0

Bạn đã thử cái này chưa? – Radiodef

+0

Tất nhiên, nó đi qua quá trình biên dịch nhưng tôi tự hỏi nếu lỗi dễ bị hoặc chống lại bất kỳ tốt/thực hành tốt nhất? –

Trả lời

2

Hành vi mong đợi là lỗi thời gian chạy có thể xảy ra hoặc mọi thứ đều ổn với "giải pháp"?

Miễn là bạn triển khai phương thức gốc (chính xác) và tải thư viện gốc chứa triển khai, thì mọi thứ hoạt động.

Tôi tự hỏi liệu có dễ bị lỗi hoặc chống lại bất kỳ thực tiễn tốt/tốt nhất nào không?

Không, và không.

Hoặc ít nhất, nó không phải là nhiều hơn dễ bị lỗi hoặc nhiều hơn đối với "thực hành tốt nhất" so với bất kỳ việc sử dụng mã gốc nào.

Nhân tiện, bạn thực sự nên đọc James Bach's "No Best Practices" article trước khi bạn khoanh vùng xung quanh các thuật ngữ tinh ranh như "thực hành tốt nhất".

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