2016-07-17 15 views
17

Tôi sẽ bắt đầu sử dụng Kotlin cho phát triển Android ngoài Java vì lợi ích của nó. Tôi đã cài đặt plugin Android Studio và bao gồm các phụ thuộc có liên quan trong tệp gradle của mình.Các tệp Kotlin có nên được đặt trong một thư mục nguồn riêng trong Android không?

Vì vậy, tôi đã đọc từ tài liệu Kotlin và Stack Overflow rằng nó có thể bao gồm một thư mục nguồn riêng biệt cho các tập tin Kotlin, như vậy:

ứng dụng:
-manifest
-java
-kotlin
-res

tôi biết tôi có thể tạo Directo này ry bằng cách thêm dòng sau vào file build.gradle tôi:

sourceSets { 
    main.java.srcDirs += 'src/main/kotlin' 
} 

Câu hỏi của tôi là: nên Kotlin file 'sống' với các file Java trong cùng thư mục hay không?

Ngoài ý kiến, tôi muốn biết liệu có một quy ước cụ thể cho điều này không, và nếu có thì tại sao nó lại là như vậy.

Nếu không, thì lợi thế và bất lợi của mỗi tùy chọn là gì?

Trả lời

22

Đặt các tệp Kotlin trong một thư mục nguồn riêng biệt tồn tại dưới dạng khả năng được ghi nhận bởi vì trong các phiên bản đầu tiên (trước 1.0) của Kotlin, đây là thiết lập được hỗ trợ duy nhất. Sau đó, plugin Kotlin Gradle được thực hiện linh hoạt hơn, do đó việc tách thư mục không còn cần thiết nữa. Tôi không biết về bất kỳ lợi ích nào có thể đạt được bằng cách đặt các tệp Kotlin trong một thư mục nguồn riêng biệt.

Có một thư mục nguồn riêng biệt đặc biệt bất tiện khi bạn có một dự án Java mà bạn đang chuyển dần sang Kotlin. Di chuyển từng tệp được chuyển đổi sang một thư mục nguồn khác làm cho quá trình chuyển đổi không cần thiết rườm rà hơn.

+0

Cảm ơn câu trả lời của bạn. Tôi đã có một dự án Java khá lớn (cho Android) mà tôi sẽ thêm các tệp Kotlin và chuyển đổi một vài tệp Java sang Kotlin. Tôi đồng ý rằng việc di chuyển từng tệp được chuyển đổi sẽ tẻ nhạt, và tôi tưởng tượng cũng sẽ bất tiện khi phải điều hướng qua các thư mục khác nhau để tìm tệp Kotlin thường nằm trong cùng một gói như tệp Java. Hiện tại, tôi ưu tiên tùy chọn giữ tất cả các tệp trong một thư mục nguồn, nhưng có cách nào để đổi tên thư mục nguồn 'java' thành một cái gì đó có liên quan hơn không. –

+0

Bạn có thể sử dụng cùng một mã thiết lập như được hiển thị trong câu hỏi của bạn để tạo nguồn gốc với tên bạn thích và chỉ cần xóa gốc nguồn "java". Tuy nhiên, nếu bạn đang lo lắng về các công ước, tôi không nghĩ rằng một thiết lập như vậy sẽ được thông thường. – yole

+0

Cảm ơn bạn lần nữa. Tôi nghĩ rằng tôi sẽ tiếp tục sử dụng thư mục nguồn 'java' ngay bây giờ, và có lẽ khi tôi có một số lượng lớn các tệp kotlin, tôi sẽ chuyển chúng vào một thư mục nguồn riêng biệt. –

4

Vì vị trí tệp không có ý nghĩa nhiều đối với trình biên dịch Kotlin, quy ước là đặt các mô-đun "hợp lý" giống như cách bạn làm với tệp Java.

Ví dụ: nếu bạn đã quyết định tái cấu trúc lớp Java bằng cách chuyển đổi nó thành Kotlin, tệp Kotlin kết quả sẽ thay thế cho tệp Java gốc.

+1

Cảm ơn bạn đã trả lời.Có cách nào để đổi tên thư mục nguồn 'java', do đó, nó có ý nghĩa hơn, vì nó sẽ chứa không chỉ các tệp nguồn java, mà còn chứa các tệp nguồn kotlin? –

+1

Đó là một câu hỏi cấp cao hơn là một câu hỏi của Kotlin. Cá nhân tôi sẽ không làm phiền để đổi tên bất cứ điều gì – voddan

+0

nhận được một classnotfoundexception khi cố gắng để chạy một kotlin trống mainactivity? –

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