덴마크초코우유
40
2019-06-14 13:41:54
1
156

ArrayList 에러 어떻게 해결해야할까요?



import java.util.ArrayList;


<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%
	//post로 넘어오는 request의 값을 한글로 인코딩
	request.setCharacterEncoding("utf-8");
	String username = request.getParameter("username");

	//username이 null이 아닌 경우, 세션에 값을 저장함.
	if (username != null) {
		session.setAttribute("user", username);
	}
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<div align="center">
		<h3>my simple Twitter!</h3>
		<hr>
		<form action="tweet.jsp" method="post">
			<!-- 세션에 저장된 이름 출력 -->
			@<%=session.getAttribute("user")%>
			<input type="text" name="msg"> 
			<input type="submit" value="Tweet">
		</form>
		<hr>
		<div align=left>
			<ul>
			
				<%
				
					ArrayList<String> msgs = (ArrayList<String>) application.getAttribute("msgs");
					//application 내장 객체를 통해 msgs 이름으로 저장된 ArrayList를 가져옴.


					//msgs가 null이 아닌 경우에만 목록 출력
					if (msgs != null) {
						for (String msg : msgs) {
							out.println("<li>" + msg + "</li>");
						}
					}else{
						out.println("등록된 글이 없습니다.");
					}
				%>
			</ul>
		</div>

	</div>
</body>
</html>


import java.util.ArrayList;
import="java.util.ArrayList"
import java.util.List;



<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%
	request.setCharacterEncoding("utf-8");
	String msg = request.getParameter("msg");	//html 폼에서 전달될 msg 값 가져옴
	Object username= session.getAttribute("user");	//session에 저장된 user 이름을 가져옴
	ArrayList<String> msgs = (ArrayList<String>)application.getAttribute("msgs");	//메세지 저장을 위해 application에서 msgs로 저장된 ArrayList 가져옴.
	
	//null일 경우 새로운 ArrayList 생성
	if(msgs==null){
		msgs=new ArrayList<String>();
		application.setAttribute("msgs", msgs);//application의 ArrayList에 저장.
	}
	
	//사용자 이름, 날짜, 메세지를 포함해 ArrayList에 저장.
	msgs.add(username+" :: "+msg+" , "+new java.util.Date());
	
	//톰캑 콘솔을 통한 로깅
	application.log(msg+"추가됨");
	//목록 화면으로 리다이렉팅
	response.sendRedirect("twitter_list.jsp");
%>

Multiple annotations found at this line:

- Type safety: Unchecked cast from Object to 

ArrayList<String>

- Line breakpoint:tweet.jsp [line: 14]

- ArrayList cannot be resolved to a type



Multiple annotations found at this line:

- Type safety: Unchecked cast from Object to 

ArrayList<String>

- Line breakpoint:twitter_list.jsp [line: 38]

0
0
  • 답변 1

  • Frudy
    3k
    2019-06-14 13:59:03
    import java.util.ArrayList;
    import="java.util.ArrayList"
    import java.util.List;

    이거 모에요?

    임포트가 두번...된거아니에요?


    그리고  - Type safety: Unchecked cast from Object to ArrayList<String>

    이 말은,


    Object타입의 변수를 ArrayList<String>타입으로 캐스팅할 때

    체크가 안됬다는 뜻이에요.

    꼭 ArrayList가 아니라, Object를 제네릭타입을 갖고있는애로 캐스팅할 때 발생해요.


    제네릭타입이 달라도 빨간줄이 그어지지않거든요.


    이럴때는 그냥 @SuppressWarnings("unchecked") 위에 붙여주면 되요.

    단순히, 컴파일러가 주의하라는 뜻이에요. 

    (라고 1년전에 20몇년 경력의 강사님이 그랬습니다)

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.