# Can You Access Java HackerRank Solution

## Can You Access Java HackerRank Solution

Hello Friends, How are you? Today I will solve the HackerRank Java Can You Access - Problem with a straightforward explanation. In this article, you will get more than one approach to solve this problem. So let's start-

### HackerRank Java Can You Access - Problem Statement

You are given a class Solution and an inner class Inner.Private. The main method of class Solution takes an integer num as input. The powerof2 in class Inner.Private checks whether a number is a power of 2. You have to call the method powerof2 of the class Inner.Private from the main method of the class Solution.

Constraints:

1 <= num <= 2^30

Sample Input

8 {codeBox}

Sample Output

8 is power of 2 An instance of class: Solution.Inner.Private has been created {codeBox}

Java Can You Access HackerRank Solution

### Java Can You Access - Hacker Rank Solution

Approach I: Java Can You Access - Solution HackerRank

``````// ========================
//       Information
// ========================

// Name: Java Can You Access HackerRank Problem
// Direct Link: https://www.hackerrank.com/challenges/can-you-access/problem
// Difficulty: Medium
// Max Score: 15
// Language: Java 7

// ========================
//         Solution Start
// ========================

// Java Can You Access - Hacker Rank Solution Start

import java.io.*;
import java.lang.reflect.*;
import java.util.*;
import java.util.regex.*;
import java.security.*;

public class Solution {

public static void main(String[] args) throws Exception {
DoNotTerminate.forbidExit();

try{
int num = Integer.parseInt(br.readLine().trim());
Object o;

// Must be used to hold the reference of the instance of the class Solution.Inner.Private

o = new Inner().new Private();
System.out.println(""+num+" is "+((Inner.Private)o).powerof2(num));

System.out.println("An instance of class: " + o.getClass().getCanonicalName() + " has been created");

}//end of try

catch (DoNotTerminate.ExitTrappedException e) {
System.out.println("Unsuccessful Termination!!");
}
}//end of main
static class Inner{
private class Private{
private String powerof2(int num){
return ((num&num-1)==0)?"power of 2":"not a power of 2";
}
}
}//end of Inner

}//end of Solution

class DoNotTerminate { //This class prevents exit(0)

public static class ExitTrappedException extends SecurityException {

private static final long serialVersionUID = 1L;
}

public static void forbidExit() {
final SecurityManager securityManager = new SecurityManager() {
@Override
public void checkPermission(Permission permission) {
if (permission.getName().contains("exitVM")) {
throw new ExitTrappedException();
}
}
};
System.setSecurityManager(securityManager);
}
}

// Java Can You Access Hacker Rank Solution END
// MyEduWaves``````

Approach II: Java Can You Access - Solution HackerRank

``````// ========================
//       Information
// ========================

// Name: Java Can You Access HackerRank Problem
// Direct Link: https://www.hackerrank.com/challenges/can-you-access/problem
// Difficulty: Medium
// Max Score: 15
// Language: Java 7

// ========================
//         Solution Start
// ========================

// Java Can You Access - Hacker Rank Solution Start

import java.security.Permission;

public class Solution {
public static void main(String[] args) throws Exception {
Do_Not_Terminate.forbidExit();

try {
int num = Integer.parseInt(br.readLine().trim());
Object o;

// Must be used to hold the reference of the instance of
// the class Solution.Inner.Private

Inner inner = new Inner();
Inner.Private p = inner.new Private();
System.out.println(num + " is " + p.powerof2(num));
o = p;

System.out.println("An instance of class: " + o.getClass().getCanonicalName() + " has been created");

} // end of try

catch (Do_Not_Terminate.ExitTrappedException e) {
System.out.println("Unsuccessful Termination!!");
}
}// end of main

static class Inner {
private class Private {
private String powerof2(int num) {
return ((num & num - 1) == 0) ? "power of 2" : "not a power of 2";
}
}
}// end of Inner

}// end of Solution

class Do_Not_Terminate {

public static class ExitTrappedException extends SecurityException {

private static final long serialVersionUID = 1L;
}

public static void forbidExit() {
final SecurityManager securityManager = new SecurityManager() {
@Override
public void checkPermission(Permission permission) {
if (permission.getName().contains("exitVM")) {
throw new ExitTrappedException();
}
}
};
System.setSecurityManager(securityManager);
}
}

// Java Can You Access Hacker Rank Solution END
// MyEduWaves``````

Disclaimer: The above Problem ( Java Can You Access ) is generated by Hackerrank but the Solution is Provided by MyEduWaves. This tutorial is only for Educational and Learning purposes. Authority if any queries regarding this post or website fill out the contact form.

I hope you have understood the solution to this HackerRank Problem. All these three solutions will pass all the test cases. Now visit Java Can You Access - Hackerrank Problem and try to solve it again.

All the Best!