วันเสาร์ที่ 28 กุมภาพันธ์ พ.ศ. 2558

ตัวอย่างโค้ด Java ที่ Autoboxing และ Unboxing

ตัวอย่างโค้ด Java ที่ Autoboxing และ Unboxing

สวัสดีครับ ตัวอย่างนี้เรามาดูตัวอย่างโค้ด Java ที่เวลาเราเขียนแล้วมันจะ Autoboxing และ Unboxing กันครับ

ตัวอย่างโค้ด


package javacodeexam;

public class AutoboxingAndUnboxing {
public static void main(String[] args) {
Integer n  = 2; // Boxing 
int a  = n; // Unboxing
System.out.println(a);
// When Compile Code
// Integer n  = Integer.valueOf(2);
// int a  = n.intValue();
}
}

จากตัวอย่างจะเห็นว่าถ้าเราเขียน Integer n = 2; จะเกิดการ Autoboxing ซึ่งจะเป็นการแปลง int ไปเป็น Integer ถ้าดูจากการ  compile code แล้วจะมีการใส่ Integer.valueOf(2); เกิดขึ้น

อีกบรรทัด เมื่อเราให้ n ซึ่งเป็น Integer แล้วกำหนดให้เท่ากับ a ซึ่งเป็น int จะเกิดการ Unboxing ถ้าดูจากการ compile code จะเห็นว่าจะเป็นการเรียก method intValue();

yengo หรือ buzzcity

วันศุกร์ที่ 27 กุมภาพันธ์ พ.ศ. 2558

ตัวอย่างโค้ด Java การอ่านและเช็คไฟล์ excel ว่าเป็น 2007 หรือ 2010

ตัวอย่างโค้ด Java การอ่านและเช็คไฟล์ excel ว่าเป็น 2007 หรือ 2010

สวัสดีคับ ตัวอย่างโค้ด Java ตัวอย่างนี้เรามาดูตัวอย่างการอ่านและเช็คไฟล์ excel ว่าไฟล์นั้นเป็นไฟล์ excel 2007 หรือว่า 2010 กันคับ ซึ่งทั้ง 2 แบบจะใช้ตัวอ่านที่ต่างกัน

ตัวอย่างโค้ด


package javacodeexam;

import java.io.File;
import java.io.FileNotFoundException;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.poi.poifs.filesystem.NPOIFSFileSystem;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class ExcelXlsAndXlsx {
public static void main(String[] args) {
File file = new File("ExcelFile");
Workbook workbook = null;
try(NPOIFSFileSystem fs = new NPOIFSFileSystem(file)){
// XLS FILE
workbook = new HSSFWorkbook(fs.getRoot(), false);
}
catch(FileNotFoundException ex){
System.out.println("ไม่พบไฟล์นี้อยู่ในเซิฟเวอร์ " + ex);
return;
}
catch(Exception ex){
System.out.println("ไฟล์นี้ไม่สามารถอ่านเป็น XLS ได้ : " + ex);
}

if(workbook == null){
try(OPCPackage pkg = OPCPackage.open(file)){
// XLSX FILE
workbook = new XSSFWorkbook(pkg);
}
catch(Exception ex){
System.out.println("ไม่เป็นไฟล์ Excel : " + ex);
return;
}
}
}
}


จากโค้ดจะเห็นว่าไฟล์ Excel ที่เป็น .xls(2007) นั้นจะใช้ HSSFWorkbook ในการอ่านไฟล์ ส่วนไฟล์ที่เป็น xlsx(2010) นั้นจะใช้ XSSFWorkbook ในการอ่าน

ในตัวอย่างเราจะใช้ try catch ครอบเอาไว้เพื่อตรวจสอบว่าเป็นไฟล์ xls หรือเปล่าก่อน แล้วนำมาเก็บในตัวแปร workvook เราจะใช้ NPOIFSFileSystem กับ OPCPackage.open เพื่อใช้สำหรับอ่านไฟล์ Excel ที่มีขนาดใหญ่ แต่ถ้างานของเราต้องการอ่านไฟล์ Excel ที่มีขนาดเล็กละก็ใช้แค่ HSSFWorkbook กับ XSSFWorkbook แค่นี้ก็พอครับ

yengo หรือ buzzcity

วันพฤหัสบดีที่ 26 กุมภาพันธ์ พ.ศ. 2558

varargs Method หรือ method ที่รับพารามิเตอร์ไม่ระบุจำนวน

varargs Method หรือ method ที่รับพารามิเตอร์ไม่ระบุจำนวน


สวัสดีคับ บทความนี้เรามาทำความรู้จักกับ varargs Method หรือ method ที่มีพารามิเตอร์เป็นจุด ๆ หรือ method ที่รับพารามิเตอร์ไม่ระบุจำนวนกันครับ

ตัวอย่างโค้ด Java



package javacodeexam;

public class ExampleCode {
 public static void main(String[] args) {
  System.out.println(max(1, 2));
  System.out.println(max(1, 2, 3, 4, 5));
  System.out.println(max(31, 42, 63, 24, 55));
 }
 
 public static  int max(int... num) {
  int max = num[0];
  
  for (int i = 0; i < num.length; i++) {
   if(max < num[i]) max = num[i];
  }
  
  return max;
 }
}


จากตัวอย่างโค้ดจะเห็นว่าเราสร้าง method ที่ชื่อว่า max ขึ้นมาจากนั้นรับพารามิเตอร์เป็น num แบบไม่จำกัดจำนวน โดยการใส่จุดสามจุดหลังชนิดตัวแปร จากนั้นเวลาเรียกเราสามารถใส่กี่ตัวก็ได้ ใน method ตัวแปรนั้นจะเป็นแบบ array ตามโค้ดด้านบน

yengo หรือ buzzcity

วันพุธที่ 25 กุมภาพันธ์ พ.ศ. 2558

รู้จักกับ Instance/Static Methods ใน Java

รู้จักกับ Instance/Static Methods ใน Java


บทความนี้เรามาทำความ รู้จักกับ Instance/Static Methods ใน Java กันครับ ซึ่ง Instance/Static นี้เราควรจะนำไปใช้ให้ถูกลักษณะการทำงาน

package javacodeexam;

public class ExampleCode {
public static void main(String[] args) {
ExampleCode.aClassMethod();

ExampleCode examcode = new ExampleCode();
examcode.anInstanceMethod();
}

// A  static or  class method
static void  aClassMethod()  {
   System.out.println("static method");
}

// A  non-static or  instance method
void  anInstanceMethod()  {
System.out.println("instance method");
}
}

Instance Methods 

เวลาเราเขียนเราไม่ต้องใส่คำว่า static ไว้ข้างหน้า method เวลาเรารียกจะทำการเรียกโดยใช้ Object แล้วตามด้วยชื่อ method

Static Methods 

เราต้องใส่คำว่า static ไว้ข้างหน้า method ซึ่ง method นี้เวลาจะเรียกใช้ก็เรียกโดย เรียกชื่อ Class แล้วตามด้วยชื่อ method


จะเห็นว่า Instance/Static Methods ต่างกันที่  Instance Methods  เป็น method สำหรับ Object ส่วน Static Methods เป็น method สำหรับ Class

yengo หรือ buzzcity

วันอังคารที่ 24 กุมภาพันธ์ พ.ศ. 2558

ตัวอย่างโค้ด java การแปลง ตัวหนังสือ(String) เป็น ตัวเลข(int, Long, Float)

ตัวอย่างโค้ด java การแปลง ตัวหนังสือ(String) เป็น ตัวเลข(int, Long, Float)


สวัสดีคับ บทความนี้เรามาดูพื้นฐานการแปลงตัวเลข โดยตัวอย่างโค้ด Java กันครับ ซึ่งเป็นตัวอย่างโค้ดในการแปลงตัวหนังสือให้เป็นตัวเลข ซึ่งใช้บ่อยมาก

ตัวอย่างโค้ด


package javacodeexam;

public class ExampleCode {
 public static void main(String[] args) {
  String a = "123";
  String b = "456";
  String c = "789";
  
  int aa = Integer.valueOf(a) + 1;
  System.out.println(aa);
  
  int aaa = new Integer(a) + 1;
  System.out.println(aaa);
  
  Long bb = Long.valueOf(b);
  System.out.println(bb);
  
  Float cc = Float.valueOf(c);
  System.out.println(cc);
 }
}


จากตัวอย่างจะเป็นว่า เราสามารถแปลงตัวหนังสือเป็นตัวเลขนั้นโดยเรียกชื่อ Class จากนั้นเรียกใช้ valueOf แล้วใส่ตัวหนังสือเข้าไปเป็นการแปลง หรือว่าเราจะ new มาใหม่เลยก็ได้ แต่อันไหน หรือวิธีไหนดีกว่ากันนั้น บอกไว้เลยว่า valueOf ดีกว่าครับ เพราะว่ามีการ catch ตัวเลขไว้

yengo หรือ buzzcity

วันจันทร์ที่ 23 กุมภาพันธ์ พ.ศ. 2558

ตัวอย่างโค้ด java การสร้าง method ที่ return ค่า

ตัวอย่างโค้ด java การสร้าง method ที่ return ค่า


สวัสดีคับ ตัวอย่างโค้ดตัวอย่างนี้เรามาดูวิธีการสร้าง method ที่ return ค่ากันครับ ซึ่งตัวอย่างโค้ด เขียนได้ดังนี้


package javacodeexam;

public class ExampleCode {
 public static void main(String[] args) {
  System.out.println("3 + 4 : " + sum(3, 4));
  System.out.println("4 - 3 : " + minutes(4, 3));
  
  printTest();
  methodBreak();
 }
 
 public static int sum(int a, int b) {
  return a + b;
 }
 
 public static int minutes(int a, int b) {
  return a - b;
 }
 
 public static void printTest() {
  System.out.println("Print Test");
 }
 
 public static void methodBreak() {
  for (int i = 0; i < 10; i++) {
   System.out.println(i);
   if(i == 5) return;
  }
 }
}


จากตัวอย่างเราสร้าง method 3 method ซึ่งมี

- method sum ซึ่งเป็น method สำหรับบวกเลข เราจะรับพารามิเตอร์ 2 ค่าคือ a กับ b แล้ว return ค่าที่ได้จากการบวกกันออกไปเราจะใช้ return a + b; ซึ่ง method จะ return int ตามหัว method public static int sum(int a, int b)

- method minutes เป็น method สำหรับลบเลข จะรับค่า a กับ b เข้ามาแล้วจะทำการลบกัน โดยจะ return ค่าเป็น int ที่ได้จากการลบกันคือ return a - b; แล้ว return ค่าเป็น int ตามหัว method คือ public static int minutes(int a, int b)

- method methodBreak เป็น method ทีไม่มีการ return ค่า คือ public static void methodBreak() เราไม่จำต้องใส่ค่า return แต่ว่าเราสามารถใส่  return; แบบนี้ได้ เพื่อให้จบการทำงานของ method ตามตัวอย่างโค้ด

yengo หรือ buzzcity