간단하다... 론 패턴.. loan pattern


package com.javaTest.lamda;

public class Person {


public Person(String name, int age) {
this.name = name;
this.age = age;
}

public Person() {
}

String name;
int age;

public String getName() {
return name;
}

public Person setName(String name) {
this.name = name;
return this;
}

public int getAge() {
return age;
}

public Person setAge(int age) {
this.age = age;
return this;
}

@Override
public String toString() {
return "{name:"+this.name+",age:"+this.age+"}";
//return super.toString();
}

public int ageDifference(Person other) {
return age - other.age;
}
}

자 흔한 vo 인데... 잘보면 return this; 즉 자신을 리턴하고 있다. 객체를...


public void chaining001() {
Person person = new Person().setAge(10).setName("dr.who");

System.out.println(person.toString());
}


자.. 이렇게 체이닝이 만들어진다. 간단하지?


근데 문제는... 만약 vo 가 확장 vo 라면?

확장시 타입을 확실히 선언해주면된다. ( 참고 https://stackoverflow.com/questions/1069528/method-chaining-inheritance-don-t-play-well-together )


// XXX base 가 되는 클래스는 타입을 선언해줘야함
class Pet<T extends Pet>
{
private String name;
private String color;

public T setName(String name) {
this.name = name;
return (T) this;
}

public String getName() {
return name;
}

public String getColor() {
return color;
}

public T setColor(String color) {
this.color = color;
return (T) this;
}
}

// XXX 확장한 클래스는 베이스 클래스에게 타입을 알려줘야함(여기서는 Cat)
class Cat extends Pet<Cat>
{
private String sand;
private String hair;

public String getSand() {
return sand;
}

public Cat setSand(String sand) {
this.sand = sand;
return this;
}

public String getHair() {
return hair;
}

public Cat setHair(String hair) {
this.hair = hair;
return this;
}
}

class Dog extends Pet<Dog>
{
private String takeawalk;
private String vitality;

public String getTakeawalk() {
return takeawalk;
}

public Dog setTakeawalk(String takeawalk) {
this.takeawalk = takeawalk;
return this;
}

public String getVitality() {
return vitality;
}

public Dog setVitality(String vitality) {
this.vitality = vitality;
return this;
}
}

@Test
public void chaining001() {
Person person = new Person().setAge(10).setName("dr.who");

System.out.println(person.toString());


Cat cat = new Cat();
cat.setName("shasha").setHair("short").setSand("normal").setColor("mix");

Dog dog = new Dog();
dog.setName("jindol").setVitality("very good").setColor("brown").setTakeawalk("daily");
}






본인은 


Yzngal(사용자 수정/업로드)

스킨을 쓰고 있다. 해당 스킨의 기본 본문 폰트가 작다고 느껴저서 폰트 사이즈를 수정했다.


방법은 간단하다. 


1. admin 에가서 왼쪽 메뉴의 html/css 수정을 누른다

2. edit 화면에서 오른쪽 위에 html/css/파일업로드  가 있는데 css 선택한다.

3. css 641 라인의 font-size 수정하면 된다.


현재 이 웹사이트에 적용된 본문 폰트사이즈는 16으로 해두었다.



from https://stackoverflow.com/questions/7885573/remove-on-list-created-by-arrays-aslist-throws-unsupportedoperationexception


List 를 한번에 생성할때 간단히 Arryas.asList("a","b"...) 형태로 만들 수 있다.


간단하고 좋긴한데...


해당 리스트를 clear() remove 할때 에러가 난다. 내용은 UnsupportedOperationException 


내용을 확인해보니 asList 로 만들어진 결과물은 fixed size  여서 말 그대로 지원하지 않는 동작이 되어버리는것이다. 


해서 이 부분을 해결하고 싶다면


그냥 Arrays.asList 하지 말고


List<String> friends = new ArrayList<>(Arrays.asList("tom","haddy","duck","gates","stranger"));

형태로 ArrayList 의 생성자로 전달해서 만들어지면 clear 등도 잘 지원하게 된다. 


본인은 json 뷰어를 fr .. 프랑스개발자가 만든 http://json.parser.online.fr 사이트를 쓰고 있다. 너무 잘 쓰고 있어서 기부도 했었고...


이번엔 코드 뷰티파이어...를 찾다가 발견한사이트인데.... 오... 우리나라 사람이 만드셨네.. 그것도 아직 학부생인것 같은데?


오.. 아이디어가 괜찮고 쓸만하다. 자바 람다언어에 대해서는 조금 부족한것 같긴한데 아무튼 그래도 괜찮게 나온다.


다만 아주 사소한... 예를 들면 해당 웹앱 화면에서 몇개의 버튼이 새창이 아닌 해당 본창을 이동시켜버리는 만행을;; (적어놨던 코드들 다 날리는;?) 저지르긴 하지만


그래도 충분히 잘 만든것 같다. 


좋은 다른회사도 많긴한데 이런분들을 우리팀에 모셔도 괜찮을것 같은데... 너무 아까운가; 차라리 UI 나 차세대 기술 파트 이런 파트에 보내드려도 좋을듯 한데 



https://colorscripter.com


해당 사이트에서 만든 컬러 적용 예는


1
2
final Predicate<String> startsWith = name -> name.startWith("N");
friends.stream().filter(startsWith).count();
cs



이렇게 나온다. 그리고 소스의 오른쪽 아래에 사이트 소개링크를 달아두셨다. 좀 써보고 기부해야할듯!!


근데 intellij 를 쓰다보니... 그냥 intellij 에서 복사 해서 붙이는게 ... 미안하지만 더 이쁘다; 라인수 없는거 빼고... 그것도 왠지 있을것 같은데... 조건이 


from http://www.java2s.com/Tutorial/Java/0040__Data-Type/Switchstatementwithenum.htm


enum 대상을 switch 할때 요상한 각종 변환을 하는 삽질할 수 있다. 어케든 될순 있을지 몰라도 사실 그냥 enum 그대로 쓰면된다. 간단하다.

switch 대상으로 enum 이 오면 끝난다.


그리고 case 각각은 enum 의 원소가 되면된다.


ex

public class MainClass {
  enum Choice { Choice1, Choice2, Choice3 }
  public static void main(String[] args) {
    Choice ch = Choice.Choice1;

    switch(ch) {
      case Choice1:
        System.out.println("Choice1 selected");
        break;
     case Choice2:
       System.out.println("Choice2 selected");
       break;
     case Choice3:
       System.out.println("Choice3 selected");
       break;
    }
  }
}



정확히는 redraw 의 문제라고 하는것 같은데 최신버전의 경우 ...나만 그런지 몰라도 플러그인으로 해결되지 않았다.

원래는 잘됐는데... 몇년동안 쓰면서;; 갑자기 이러네 -ㅅ-;; 암튼... 

헤매이다가... 댓글을 보고 해결했다.


포스트는

https://stackoverflow.com/questions/13812951/how-can-i-run-intellij-idea-on-a-remote-desktop 



The plugin didn't work for me (PyCharm CE 2017.1); nothing showed up in the Tools menu. But these settings in the idea.properties file did the trick: sun.java2d.noddraw=false sun.java2d.d3d=trueswing.bufferPerWindow=false. – Bart Robinson Apr 10 at 18:46


땡큐!!!! 


from http://gary-rowe.com/agilestack/2012/10/12/a-gitignore-file-for-intellij-and-eclipse-with-maven/

A .gitignore file for Intellij and Eclipse with Maven

October 12, 2012 Comments 
Tags:  Tips 

 

 


I often find myself having to fiddle about with ignore settings in various IDEs, so I thought I’d put together a simple general purpose solution that will ignore all the usual suspects for Intellij and Eclipse within a Maven reactor build (even works on a Mac).

Here it is: 

# Eclipse
.classpath
.project
.settings/

# Intellij
.idea/
*.iml
*.iws

# Mac
.DS_Store

# Maven
log/
target/

If you place this in .gitignore the root directory of your project, the ignore settings will be applied to all sub-directories automatically.

Finally, no more accidental commits of /target into the repo.

You may also want know how to purge the commit history to get rid of those old bloating commits, or perhaps an accidental commit of a password. If so the GitHub people have written an excellent tutorial.


위의 말처럼 ... 인텔리제이라면 이미 해당 프로젝트에 .ignore 가 있을거다. 거기가면 셋팅만 적용되어있는데 거기에 target 도 넣어라 


http://color-themes.com/?view=index


+ Recent posts