• Chào bạn, hãy đăng ký hoặc đăng nhập để tham gia cùng bọn mình và sử dụng được đầy đủ chức năng của diễn đàn :).
nahkd123

Hướng dẫn Type Parameter và sử dụng nó để viết API...

nahkd123

DEVELOPER
THÀNH VIÊN
Tham gia
21/01/2018
Bài viết
728
Chào ae, đây là tutorial đầu tiên mà mình viết ra, nếu ae biết đến Type Parameter rồi thì có thể out, còn nếu chưa biết thì có thể đọc.

1. Type Parameter là cái wtf gì vậy???
Type Parameter hay theo chị google đọc là Loại Tham Số là chữ cái (nó có thể nhiều hơn 1 chữ) chỉ định dạng field sẽ đặt trong object.
Nếu ae đã từng sử dụng ArrayList thì ae sẽ ghi là:
Mã:
ArrayList< tên của 1 object >
VD: Tạo 1 ArrayList chứa các string phải nhập là ArrayList<String>

Khi ae thử tạo 1 flag cho WorldRegion thì nó lại hiện là "T flags..."

"T" không phải là 1 object, mà nó được gọi là Type Parameter.

2. Làm sao để tạo Type Parameter???????
Sau khi bạn đã thêm modifier (hoặc ko có), bạn sẽ ghi là "<>"
VD:
Mã:
public <KonKacObject> void clearAll(KonKacObject anyObjectYouWant) { /* Code */}
chỗ KonKacObject có thể là một object bất kỳ.

Bạn cũng có thể thêm vào tên class nếu bạn muốn:
Mã:
public <Value> class SortedList {...}
Đối với phần tên class thì nó sẽ yêu cầu "loại tham số" khi tạo 1 object mới (hay còn gọi là constructor hoặc new íntance):
Mã:
new SortedList<String>();

3. Điều j sẽ xảy ra khi t dùng code ở trên (code "new SortedList<String>()" ấy)
Nó sẽ đổi "Value" thành "String"!!11!!1!!1!!
VD:
Mã:
public <Value> class SortedList {

    ArrayList<Value> a;
    public SortedList() {
        this.a = new ArrayList<Value>();
    }

}

// Đoạn code trên sẽ chuyển class thành....
public class SortedList {               // <= mất phần declared type parameter

    ArrayList<String> a;               // <= Nó đã chuyển thành String!!
    public SortedList() {
        this.a = new ArrayList<String>();               // <= Nó tạo 1 list chứa toàn bộ string...
    }

}
Bạn cũng có thể implement 1 interface List rồi thêm 1 số method vào cũng đc (vì nó có Type Parameter là T).

4. gimme sum examplezz
Đây là 1 class tên là MapEntry mà mình code ra làm example:
Mã:
public <Type> class MapEntry {
    public Type a;
    public MapEntry(Type obj) {
        this.a = obj;
    }

    public Type get() {
        return this.a;
    }
}


Tutorial đầu tiên của mình mong ae thông cảm ko ném đá, mà nếu có thì vui lòng thảo luận để mình có thể thêm
 
Bai viet nguy hiem khuyen cao ko nen xem
 
Bai viet nguy hiem khuyen cao ko nen xem
u k m r a t n g u y h i e m d e n n o i c o t h e c r a s h s e r v e r n h u n g m a n o r a t t o t c h o c a c d e v e l o p e r s
 
public boolean MaySuaGiVay() {
return SuaCacGiVay(true);
}
 
tự nhiên tutorial đầu tiên nào cũng toàn cái gì đâu không vậy ta :v
số đông thành viên trong group còn không biết code là gì mà bay vào parameter =))
 
tự nhiên tutorial đầu tiên nào cũng toàn cái gì đâu không vậy ta :v
số đông thành viên trong group còn không biết code là gì mà bay vào parameter =))
thì mấy cái này cũng chỉ vào trình độ code vừa phải thôi chứ ko biết code thì vào mục lập trình làm gì : v
 
Chỗ này nên là hoặc chứ nhỉ. T có thể đổi thành U, V
Mình cũng đã thử rồi, với cả việc thêm "extends" cũng được, nhưng nếu như vậy thì có thể thay tất cả "Value" thành "SomeClass" cho khỏi dài dòng.

Với cả Type Parameter thì ko cần phải để duy nhất 1 chữ, nó có thể để nhiều hơn 1 chữ cũng được.
 
Mình cũng đã thử rồi, với cả việc thêm "extends" cũng được, nhưng nếu như vậy thì có thể thay tất cả "Value" thành "SomeClass" cho khỏi dài dòng.

Với cả Type Parameter thì ko cần phải để duy nhất 1 chữ, nó có thể để nhiều hơn 1 chữ cũng được.

lol, bạn ơi cái đó đó cần đặt tên cho Generic mới xài dc, nếu bạn đặt luôn là Value bạn khỏi làm mà xài trong class luôn lol.
*****Nội dung được bổ sung thêm*****
nếu bạn k hiểu thì bạn thử làm đi :D mình có để trên comment thứ 1
 
Back
Top Bottom